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