我有一个内部对象的3D阵列:
[
[{ id: 1 }, { id: 2 }],
[{ id: 3 }],
[{ id: 3 }, { id: 4 }]
]
如何弄平它,包括删除重复的id
参数?
[{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }]
我认为下划线会对此有所帮助
您可以使用Underscore flatten和unique来完成此任务。但是,每当您使用多个下划线操作时,都是考虑将下划线链接与chain
和一起使用的好时机value
:
var data = [
[{ id: 1 }, { id: 2 }],
[{ id: 3 }],
[{ id: 3 }, { id: 4 }]
];
var result = _.chain(data)
.flatten()
.uniq(function(o) {
return o.id;
})
.value();
console.log('result', result);
JSFiddle:http : //jsfiddle.net/0udLde0s/3/
使用当前的Underscore.js甚至更短
如果您使用的是Underscore.js的最新版本(我现在尝试的当前版本是1.8.3),则可以使用.uniq('id')
它,使其更短:
var result = _.chain(data)
.flatten()
.uniq('id')
.value();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句