我试图减去,即删除多个对象,即在array1中找到的array2对象,以便最终结果是array2仅包含“ jean”对象。
救命!我迷路了。
我像下面的示例一样尝试了多次代码,但没有成功。
array1= [{"caracname" : "charles"}, {"caracname" : "kevin"}]
array2= [{"caracname" : "charles"}, {"caracname" : "kevin"}, {"caracname" : "jean"}]
array1.forEach(function (k) {
delete array2[k];
});
console.log(array2);
最佳答案
这是如何执行此操作:
function objectsEqual(o1, o2) {
return o1.caracname === o2.caracname
}
function subtractArrays(a1, a2) {
var arr = [];
a1.forEach((o1) => {
var found = false;
a2.forEach((o2) => {
if (objectsEqual(o1, o2)) {
found = true;
}
});
if (!found) {
arr.push(o1);
}
})
return arr;
}
console.log(subtractArrays(array2, array1));
固定在插栓中:https://plnkr.co/edit/vA6oWg9R44f6k7ylyFh6?p=preview