我想刪除數組的數組元素刪除陣列(不記得它是如何在數學命名),例如:使用Javascript - 從陣列
var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
arr2 = ['dos', 'cuatro'],
arr3 = arr1.without(arr2);
//arr3 === ['uno', 'tres']
問候
我想刪除數組的數組元素刪除陣列(不記得它是如何在數學命名),例如:使用Javascript - 從陣列
var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
arr2 = ['dos', 'cuatro'],
arr3 = arr1.without(arr2);
//arr3 === ['uno', 'tres']
問候
Array#filter
可能會有所幫助。
var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
arr2 = ['dos', 'cuatro'],
arr3 = arr1.filter(v => arr2.indexOf(v) == -1);
console.log(arr3);
我希望它有一些本地功能,但謝謝! –
@JimiAlvaro原生函數? 'Array#filter'是definetely原生的(: –
var arr1 = ['uno', 'dos', 'tres', 'cuatro'];
var arr2 = ['dos', 'cuatro'];
arr1 = arr1.filter(function(item){
return arr2.indexOf(item) < 0;
});
console.log(arr1)
你可以使用Array#includes
並採取否定的結果。
var arr1 = ['uno', 'dos', 'tres', 'cuatro'],
arr2 = ['dos', 'cuatro'],
arr3 = arr1.filter(v => !arr2.includes(v));
console.log(arr3);
給你,應該是一個現成的功能:
function substractArrays (arr1, arr2) {
if (arr2.length) {
return arr1.filter(item => {
return !arr2.some(elem => {
return item.id === elem.id;
});
});
} else {
return arr1;
}
}
它命名爲矩陣數學 –
'ARR3 = arr1.filter(項目=> arr2.includes! (item))' – pawel
我覺得這有點重複[this](http://stackoverflow.com/questions/1187518/javascript-array-difference) –