我有一个数组array1 = [1,2,3,4,5,6]
和另一个数组array2 = [4,5]
。
目标是以最小的时间复杂度从array2
中删除array1
的元素。
最终数组为[1,2,3,6]
我知道我们可以为每个元素做类似的事情
function remove(array, element) {
return array.filter(e => e !== element);
}
let array1 = [1,2,3,4,5,6];
array2 = [4,5];
array2.forEach(el => {
array1 = remove(array1, el);
});
我如何使其变得更好?
答案 0 :(得分:2)
我为您提供两种解决方案:
var arr1 = [ 1, 2,3 ];
var arr2 = [1,2,4 ];
var result = arr1.filter(o1 => arr2.filter(o2 => o2 === o1).length === 0);
console.log(result);
或者您可以使用差异Loadash
答案 1 :(得分:2)
更简单,更清洁
const arr1 = [1,2,3,4]
const arr2 = [3,4]
const newArray = arr1.filter( x => !arr2.includes(x))
console.log(newArray)