如何使用Lodash的groupBy实现多字段分组并自定义输出结构
解决方案
你可以给_.groupBy传入自定义回调生成组合分组键,再拆分键提取color和order字段即可,修改后的代码如下:
var result = _.chain(data) // 传入自定义回调,用color和order拼接生成分组键 .groupBy(function(item) { return item.color + '|' + item.order; }) .pairs() .map(function(currentItem) { // 拆分分组键得到对应字段值 var keyParts = currentItem[0].split('|'); return { color: keyParts[0], order: Number(keyParts[1]), // 若不需要保留users里的order字段,可改用这行代码: // users: _.map(currentItem[1], user => _.omit(user, 'order')) users: currentItem[1] }; }) .value(); console.log(result);
注意事项
你给出的示例原始数组中,eddie对应的对象里"order": 3后面缺少逗号,运行前需要先补上避免语法错误。
内容的提问来源于stack exchange,提问作者user15748961
相关产品推荐
相关产品推荐

