JavaScriptで2つの配列の差分を抽出する
JavaScriptの2つの配列で、どちらか一方に含まれている要素を表示するような処理を行う。
今回は、サンプルのためにforEachの中に条件分岐を書いて、console.logで表示するだけにしているが、他のオペレータを使って、色んな処理を追加することもできそう。
なお、本記事はjs 二つの配列の差分を求める - Qiitaを大変参考にさせていただいた。
ポイント
-
array.concatで、2つの配列を連結させた新しい配列を生成する
=> 参考:Array.prototype.concat() - JavaScript | MDN -
array.forEachで1で生成した新しい配列の各要素に対して3の操作を行う
=> 参考:Array.prototype.forEach() - JavaScript | MDN -
array.includesで指定した要素が、arrayに含まれているかどうかの確認を行う
=> 参考:Array.prototype.includes() - JavaScript | MDN
const array1 = [0, 1, 2, 3, 4];
const array2 = [0, 6, 2, 3, 4];
array1.concat(array2)
.forEach(item => {
if (array1.includes(item) && !array2.includes(item)) {
console.log(`array1に含まれていて、array2に含まれていない : ${item}`);
} else if (!array1.includes(item) && array2.includes(item)) {
console.log(`array1に含まれていなくて、array2に含まれていてる : ${item}`);
}
})
結果
array1に含まれていて、array2に含まれていない : 1
array1に含まれていなくて、array2に含まれていてる : 6
参考にさせていただいたサイト
js 二つの配列の差分を求める - Qiita
Array.prototype.includes() - JavaScript | MDN