JavaScriptで2つの配列の差を見つける方法


  1. フィルタリングを使用した方法:
    • この方法では、最初の配列から2番目の配列に存在しない要素を抽出します。
function findArrayDifference(arr1, arr2) {
  return arr1.filter(item => !arr2.includes(item));
}
// 使用例
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
const difference = findArrayDifference(array1, array2);
console.log(difference); // [1, 2]
  1. Array.prototype.reduce()を使用した方法:
    • この方法では、最初の配列をループし、2番目の配列に存在しない要素だけを集めます。
function findArrayDifference(arr1, arr2) {
  return arr1.reduce((difference, item) => {
    if (!arr2.includes(item)) {
      difference.push(item);
    }
    return difference;
  }, []);
}
// 使用例
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
const difference = findArrayDifference(array1, array2);
console.log(difference); // [1, 2]
  1. Setオブジェクトを使用した方法:
    • この方法では、2つの配列をそれぞれSetオブジェクトに変換し、その差分を求めます。
function findArrayDifference(arr1, arr2) {
  const set1 = new Set(arr1);
  const set2 = new Set(arr2);
  return [...set1].filter(item => !set2.has(item));
}
// 使用例
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
const difference = findArrayDifference(array1, array2);
console.log(difference); // [1, 2]

これらの方法を使用すると、2つの配列の差を見つけることができます。どの方法を選ぶかは、特定の状況やパフォーマンスの要件によります。選んだ方法がデータセットに適しているかどうかを検討し、最適な方法を選んでください。