以下の2つの配列を比較し、重複しない要素を取り出して配列にする。この場合だと3と5が重複しない要素。
const array1 = [1, 2, 3, 4, 5]
const array2 = [1, 2, 4]
結論としては、filterメソッドを使ってarray1の要素を絞り込めばOK。
const result = array1.filter(element =>
array2.indexOf(element) == -1
);
indexOfメソッドは配列内を検索して要素のインデックス番号を返すメソッドだが、検索対象の要素が配列にない場合は-1
を返す。
今回はその特性を活用し、array2に存在しないarray1の要素だけが残るようにした。
なお、処理の出力結果(返り値)は以下の通り↓
console.log(result)
=> [3, 5]