繁体   English   中英

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

[英]_.sortBy an array with multiple nested objects in javascript

我试图按项目位置排序,然后使用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

我做错了什么?

您应该以正确的方式访问对象。 当前您的访问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
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM