我有一组对象都包含属性/public_html/ncpn
。
我希望将此数组变为数组数组,每个元素数组包含具有公共属性{em}的公共属性
它与lodash _.partition非常相似,除了它需要以递归方式发生不确定的次数,并且处于平坦级别而不是深度嵌套。
感谢您提供任何指导。
以下是一个示例数据结构:snail
snail
答案 0 :(得分:1)
我已经玩了一点点并创建了以下代码片段,它以两种不同的方式完成您正在寻找的内容,第二种是我认为更优雅的方式:
var data = [ { snail: "bungalo", i: 1 }, { snail: 'bodego', i: 2 }, { snail: 'bodego', i: 3 }, { snail: 'pet rock', i: 4 }, { snail: "bungalo", i: 5 } ];
var multiPartitioned = _(data).uniq('snail').pluck('snail').map(function(snail) {
return _.filter(data, 'snail', snail);
}).value();
var multiPartitionedMoreElegant = _(data).groupBy('snail').values().value();
console.log(multiPartitioned);
console.log(multiPartitionedMoreElegant);
您可以在CodePen上看到此示例: http://codepen.io/NicBright/pen/VeWXpj?editors=001
此致 尼古拉斯
答案 1 :(得分:1)
死亡简单怎么样:
bysnail = {};
objects.forEach(function(x){
(bysnail[x.snail] || (bysnail[x.snail] = [])).push(x);
});
输出是将snail
值映射到具有该值的对象列表的对象。