BETA

複数の配列で重複したデータのみを取得するだけ

投稿日:2019-06-28
最終更新:2019-06-28

はじめに

数学的に言うと共通部分、Intersectionのことです。
AND検索とかで使えるかも。

TypeScriptとJavaScript

const getIntersection = <T>(baseArray: Array<T>, ...arrays: Array<Array<T>>) => {  
  return baseArray.filter(value => {  
    return arrays.every(array => {  
      return array.includes(value);  
    });  
  });  
};  
const getIntersection = (baseArray, ...arrays) => {  
  return baseArray.filter(value => {  
    return arrays.every(array => {  
      return array.includes(value);  
    });  
  });  
};  

getIntersection関数に引数として複数の配列を渡して使います。

console.log(getIntersection([0, 1, 2, 3, 4, 5], [5, 6, 7, 8, 9, 0]));  
// [0, 5]  

引数の1つ目をbaseArrayとして、それをfilterしていくという形です。
残りの配列すべてにbaseArrayの値(value)が含まれていた場合trueとなり、そうでない場合はfalseとなりbaseArrayから取り除かれます。

おわりに

配列操作大好き。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@okayuの大して技術的ではないブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!