JavaScriptで2つの配列を比較し、一致したものを取り出す方法コード

目次

なんかよくやるのに、良く忘れるのでメモしておく

2つの配列を比較し一致したものを取り出したい。

特に難しいことはないのでまるっとコードを記載する。

const a:string[] =['a', 'b', 'c', 'd']
const b:string[] =['d', 'e', 'f', 'g']

// 期待値
// const c = string[] = ['d']

const c = a.filter(a =>b.includes(a))
console.log(c)

これでcは期待値になる。

どっちをFilterするのか

さて、いつもよくわからなくなるのは、どっちを回すべきなのかということ。

例えば今回は両者ともにLengthが4つだからいいけれど、例えば5と10だとどうなるのか。

実際にやってみる

const a: string[] = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
const b: string[] = ['b', 'd', 'f', 'h', 'i', 'xx']

const c = a.filter(a => b.includes(a))
console.log(c)

const a: string[] = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
const b: string[] = ['b', 'd', 'f', 'h', 'i', 'xx']

const c = b.filter(b => a.includes(b))
console.log(c)

で試してみたところ、結果は同じになった。

それぞれ、

1つ目のコードではaの要素のうち、配列bにも含まれている要素を取り出した。

2つ目のコードではbの要素のうち、配列aにも含まれている要素を取り出した。

どちらの方法を選択しても結果は変わらないが、コードの意図を明確にするために、xの要素のうち、配列xxにも含まれている要素を取り出したというのをコードで表現する必要がある。

次に読むおすすめ記事

JavaScriptでUnary plus (+)を使いかっこよくNumber型に変換する

letの仕様に関する知識を問うJavaScriptの問題

JavaScriptの配列で重複したものを削除し、ユニークな配列を作成する

react でプロジェクトを作成する

JavaScriptにおけるcount++と++countの違いについて調べてみた

この記事に対するコメント

お気軽にコメントを下さい

メールアドレスが公開されることはありません。 が付いている欄は必須項目です