ほとんどの人は二重層のforループを実装しており、同じアイテムが存在する場合、同じアイテムをスプライスするというアイデアは次の
ようになります:
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を柔軟に使用する方法を教えてください;フィルターの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]