_.sort通过javascript中具有多个嵌套对象的数组

时间:2018-08-28 16:08:41

标签: javascript underscore.js undefined typeerror

我试图按项目位置排序,然后使用underscorejs方法_.each_.groupBy_.sortBy将数据推入表中

sails.log('my.items.item_location.location: ', my.items[0].item_location.location)
  _.each(_.groupBy(_.sortBy(my.items.item_location.location, 'location'), 'location'), function(locationItems) {

      itemsTable.table.body.push(my.renderItemRow(locationItems));


  });

顶部的我sails.log从第0个位置打印出数据,我可以验证数组的其余部分是否包含定义的位置。

我的对象

my.items:[  
   {  
      "p_item_id":79,
      "uid":"9c2073da-2945-4e0d-ad97-39db1a4cde16",
      "quantity":9,
      "item_location":{  
         "inbounds_items_location_id":1,
         "uid":"fJtWsFrVD",
         "sku_uid":"150-MTG-XS",
         "location":"O8",
         "quantity":171,
      },
   },
...
]

每当我访问location参数时,我都会得到:

TypeError: Cannot read property 'location' of undefined

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您应该以正确的方式访问对象。当前您的访问权限my.items.item_location.location是错误的,因为my.items是数组。 因此,my.items没有名为item_location的属性,但是my.items[0]拥有。

最后,您应该像下面这样写下

_.groupBy(_.sortBy(my.items, function(item){
    return item.item_location.location
}), function(item){
    return item.item_location.location
})