一般人都是 双层for 循环实现, 存在相同项 则 把相同项splice 的思路;
like this:
function array_diff(a, b) {
a = JSON.parse(JSON.stringify(a))
b = JSON.parse(JSON.stringify(b))
for (var i = 0; i < b.length; i++) {
for (var j = 0; j < a.length; j++) {
if (a[j] == b[i]) {
a.splice(j, 1);
j = j - 1;
}
}
}
return a;
}
看起来就跟繁琐啊!
教给大家灵活运用 es6 以下 一行代码 搞定;filter 里面 findIndex
const a = [1,2,3,4]
const b = [1, 3]
const c = a.filter(v => b.findIndex(el => el === v) === -1);
console.log(c) // [2, 4]