我试图按项目位置排序,然后使用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
我做错了什么?
答案 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
})