实现一个函数,用于过滤第一个参数的数组中不含第二个数组中的值

实现一个函数,用于过滤第一个参数的数组中不含第二个数组中的值,如 a1 = [1,2,3,4,5] ,a2 = [2,3,4], 过滤得到 b1 = [1, 5]

阅读 2.8k
5 个回答

arr = [1,2,3,4,5],subarr = [2,3,4];
subarr.forEach(function (item) {
for(var i=0;i<arr.length;i++){

if(arr[i]==item){
    arr.splice(i,1);
    break;
}

}
})

const new_a1 = a1.filter(v => ! a2.includes(v))

如果数据比较大,可以

const s2 = new Set(a2)
const new_a1 = a1.filter(v => ! s2.has(v))
function filter(a, b = []) {
    return [].filter.call(a, n => !b.includes(n));
}
console.dir(filter(a1, a2));

通常直接考虑lodash

推荐问题