从另一个数组中删除一个元素数组

时间:2018-09-05 15:51:31

标签: arrays node.js

我有一个数组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);
});

我如何使其变得更好?

2 个答案:

答案 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)