2つの連想配列を比較し、特定の項目が一致しているデータを抽出したい
javascriptでDBを更新するスクリプトを作成しています。
2つの連想配列 AとBがあり、
Aの連想配列から、Bと重複しているデータのみを残して、他を消したいです。
該当のソースコード
連想配列A = [ { code: '0001', name: 'A', address: 'xxxxxx' }, { code: '0002', name: 'B', address: 'xxxxxx' }, { code: '0003', name: 'C', address: 'xxxxxx' }, { code: '0004', name: 'D', address: 'xxxxxx' }
連想配列B = [ { code: '0001', name: 'A', address: 'xxxxxx' }, { code: '0003', name: 'C', address: 'xxxxxx' }, { code: '0005', name: 'E', address: 'xxxxxx' }, { code: '0007', name: 'G', address: 'xxxxxx' }
上記2つの配列を比較して、下記のような配列をつくりたいです。
連想配列A = [ { code: '0001', name: 'A', address: 'xxxxxx' }, { code: '0003', name: 'C', address: 'xxxxxx' }
試したこと
var result = targetDatas.filter(function(a) { var matchNo = comparisonDatas.find(function(b){ return a.code === b.code }) return matchNo == null; });
これだと重複していないデータのみ残ってしまいます。
重複しているデータのみを残したいです。
よろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー