配列の検索方法はよく使うので、ようやく覚え始めたのですが、今回は連想配列の検索方法について。
すぐに見つかるのは 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 で連想配列の特定の要素を検索する方法についてでした。
ご参考になれば幸いです。