JavaScript | 2つの配列から差分データを取得する方法

JavaScript 配列,JavaScript 取得,JavaScript

JavaScript | 2つの配列から差分データを取得する方法

2つの配列から差分データを取得する方法とそのサンプルコードを紹介しています。

2つの配列から差分データを取得するサンプルコード

方法のひとつとして、Array.filter() メソッドを使って2つの配列から差分データを取得する事ができます。

例えば、以下のコードでは data1 の配列データのうち data2 の配列データにはないデータを取得しています。

const data1 = [1, 2, 3, 4, 5]
const data2 = [4, 5, 6, 7, 8]

const diff = data1.filter(x => !data2.includes(x))
console.log(diff)

// [1, 2, 3]

指定する配列データを逆にした場合は、data2 の配列データのうち data1 の配列データにはないデータを取得する事ができます。

const data1 = [1, 2, 3, 4, 5]
const data2 = [4, 5, 6, 7, 8]

const diff = data2.filter(x => !data1.includes(x))
console.log(diff)

// [6, 7, 8]

ほかには、Array.reduce()メゾットを使って配列から差分を得る方法などがあります。

const data1 = [1, 2, 3, 4, 5]
const data2 = [4, 5, 6, 7, 8]

const diff = data1.reduce((acc, x) => data2.includes(x) ? acc : acc.concat(x), [])
console.log(diff)

// [1, 2, 3]