【发布时间】:2014-12-23 17:46:38
【问题描述】:
我有一个这样的对象数组:
var bigarr =
[
[ { name: 'ABC',id: 391},{ name: 'XYZ',id: 545}],
[ { name: 'EFG',id: 390},{ name: 'XYZ',id: 545}],
[ { name: 'XYZ',id: 545},{ name: 'ABC',id: 391}],
[ { name: 'ABC',id: 391},{ name: 'XYZ',id: 545}]
];
如何删除任何具有 id545 和 391 的重复对象对以将数组缩减为:
var newbigarr =
[
[ { name: 'ABC',id: 391},{ name: 'XYZ',id: 545}],
[ { name: 'EFG',id: 390},{ name: 'XYZ',id: 545}]
];
我想过通过创建一个新的数组列表来过滤掉重复的对:
[{391: 391,545: 545},{390: 390,545: 545}]
然后迭代它和bigarr 以构建newbigarr,但我的代码甚至无法创建该列表。
var test_id = [];
for(var i = 0;i < bigarr.length;i++)
{
var value_obj = {};
for(var j in bigarr[i])
{
var value = bigarr[i][j]["id"];
value_obj[value] = value;
}
test_id.push(value_obj);
}
console.log(test_id);
我正在使用 lodash,因此欢迎任何涉及 lodash 的解决方案。
【问题讨论】:
标签: javascript arrays underscore.js lodash