Sta*_*oux 1 javascript arrays underscore.js
我有一个看起来像这样的对象数组.
var arr = [{'id':21 ,'name' : 'name 1' ,'vehiclename' : 'vehicle 1' ,'parentid' : 21},
{'id':21 ,'name' : 'name 1' ,'vehiclename' : 'vehicle 2' ,'parentid' : 21},
{'id':22 ,'name' : 'name 2' ,'vehiclename' : 'vehicle 1' ,'parentid' : 22},
{'id':22 ,'name' : 'name 2' ,'vehiclename' : 'vehicle 2' ,'parentid' : 22}]
Run Code Online (Sandbox Code Playgroud)
我想对数组进行取消或分组,现在看起来像这样.
var arr = [{'id':21,
name: 'name 1'
vehicles : [{'vehiclename':'vehicle 1','parentid':21},
{'vehiclename':'vehicle 2','parentid':21}] },
{'id':22,
name: 'name 2'
vehicles : [{'vehiclename':'vehicle 1','parentid':22},
{'vehiclename':'vehicle 2','parentid':22}] }
}]
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
对于那些好奇的人来说,这是一个下划线的解决方案:
grouped = _.map(_.groupBy(arr, 'id'), function(b) {
return _.extend(_.pick(b[0], 'id', 'name'), {
vehicles: _.map(b, function(elem) {
return _.pick(elem, 'vehiclename', 'parentid')
})
});
});
Run Code Online (Sandbox Code Playgroud)