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

公開日: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から取り除かれます。

おわりに

配列操作大好き。

記事が少しでもいいなと思ったらクラップを送ってみよう!
5
+1
@okayuの大して技術的ではないブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする