【发布时间】:2017-06-01 01:07:57
【问题描述】:
var a = [
[
{
id: "AAA"
},
{
id: "BBB"
}
],
[
{
id: "AAA"
},
{
id: "DDD"
}
]
];
var b = [
[
{
id: "BBB"
}
],
[
{
id: "CCC"
},
{
id: "BBB"
}
],
[
{
id: "AAA"
}
],
[
{
id: "AAA"
},
{
id: "DDD"
}
],
[
{
id: "DDD"
}
],
[
{
id: "CCC"
},
{
id: "DDD"
}
],
[
{
id: "AAA"
}
],
[
{
id: "AAA"
},
{
id: "BBB"
}
]
];
function remove_duplicates(a, b) {
for (var i = 0, len = a.length; i < len; i++) {
for (var j = 0, len = b.length; j < len; j++) {
if (a[i].name == b[j].name) {
b.splice(j, 1);
}
}
}
console.log(a);
console.log(b);
}
console.log(a);
console.log(b);
remove_duplicates(a,b);
我已经尝试了过滤器和减少,但它们得到了想要的结果 我找到了一个similar one,但我的结构几乎没有什么不同
从 JavaScript 或下划线中寻找可能的解决方案
预期结果:[[{"id":"BBB"}],[{"id":"CCC"},{"id":"BBB"}],[{"id":"AAA"}],[{"id":"DDD"}],[{"id":"CCC"},{"id":"DDD"}]]
【问题讨论】:
-
您应该发布您期望/想要返回的结果对象,以便更容易准确地理解您正在寻找什么。
-
将预期结果添加到问题@anied
-
你的应用中使用过 lodash 吗?如果是,您可以使用方法 differenceWith lodash.com/docs/4.17.4#differenceWith