【JavaScript】連想配列から特定の要素を検索する方法

配列の検索方法はよく使うので、ようやく覚え始めたのですが、今回は連想配列の検索方法について。
すぐに見つかるのは find() メソッドや filter() メソッドですが、今回の状況では、あるかどうかだけ分かればよかったので、若干そぐわない…。

ということで、今回参考にさせていただいた記事はこちら。

配列から条件に合うものはfind()で見つけよう。(配列とかおれおれAdvent Calendar2018 – 04日目)|Ginpen.com
https://ginpen.com/2018/12/04/array-find/

 

記事冒頭で、find() メソッドについて紹介されておりますが、その下の「その他のメソッド」の項目で、「あるかどうかだけわかれば良いなら some()」との記載がありました。

サンプルコードは下記のとおりです。

const users = [
    {id: 1, name: "田中"},
    {id: 1, name: "鈴木"},
    {id: 1, name: "山田"}
];
const result = users.some((u) => u.id === [検索したいID]);
if (result) {
    // データが存在した時の処理
} else {
    // データが存在しなかった時の処理
}

some() メソッドを使えば、検索したい値があるかだけを検索することができます。
なお、戻り値は true/false なので、そのまま if 文の条件として使えます。

 

連想配列の検索方法について簡単にまとめると下記のとおりです

  • find():一致した最初のデータを返す
  • filter():一致した全件データを返す
  • findIndex():一致したデータの位置(index)を返す
  • some():一致するデータが存在するかを返す

個人的には filter()some() が使用頻度が高そうだと思うので、この2つは覚えておきたいと思います。

 

以上、JavaScript で連想配列の特定の要素を検索する方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG