我想从数组中的数组中删除元素(不能记住它在数学中的命名方式),例如:
var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
arr2 = ['dos', 'cuatro'],
arr3 = arr1.without(arr2);
//arr3 === ['uno', 'tres']
问候
答案 0 :(得分:3)
Array#filter
可能会有所帮助。
var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
arr2 = ['dos', 'cuatro'],
arr3 = arr1.filter(v => arr2.indexOf(v) == -1);
console.log(arr3);

答案 1 :(得分:2)
var arr1 = ['uno', 'dos', 'tres', 'cuatro'];
var arr2 = ['dos', 'cuatro'];
arr1 = arr1.filter(function(item){
return arr2.indexOf(item) < 0;
});
console.log(arr1)
&#13;
答案 2 :(得分:0)
您可以使用Array#includes
并取消否定的结果。
var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
arr2 = ['dos', 'cuatro'],
arr3 = arr1.filter(v => !arr2.includes(v));
console.log(arr3);
&#13;
答案 3 :(得分:0)
在这里,你已经准备好了这个功能:
function substractArrays (arr1, arr2) {
if (arr2.length) {
return arr1.filter(item => {
return !arr2.some(elem => {
return item.id === elem.id;
});
});
} else {
return arr1;
}
}