LoginSignup
0
0

More than 3 years have passed since last update.

【JavaScript】オブジェクトを格納した配列から特定のオブジェクトを取得する

Last updated at Posted at 2020-05-21

Array.prototype.find()を使用する

【構文】
arr.find(callback(element[, index[, array]])[, thisArg])

Array.prototype.find() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/find

// 下記の配列から特定のidを持つ要素(オブジェクト)を取り出す。
const members = [
  {id: 1, name: "tanaka", age: 30},
  {id: 2, name: "suzuki", age: 28},
  {id: 3, name: "sato", age: 24},
];

const getMemberById = (id) => {
  return members.find(member => member.id === id);
};

console.log(getMemberById(1)); // {id: 1, name: "tanaka", age: 30}
console.log(getMemberById(2)); // {id: 2, name: "suzuki", age: 28}
console.log(getMemberById(3)); // {id: 3, name: "sato", age: 24}

構文についての補足

構文内のcallback関数には配列の要素一つ一つが引数に渡るので、マッチさせたい条件を記述します。
上記サンプルの場合、callback関数の引数には各オブジェクトが渡され、指定したgetMemberById(n)で渡した数値と、各オブジェクトのidプロパティの値がマッチするまで、callback関数を繰り返し実行します。

戻り値

Array.prototype.find()の戻り値は最初に条件にマッチした要素なので、同じ条件の要素が2つ以上あった場合、以降は無視されます。条件に一致した要素がなければ、undefinedを返します。

まとめ

ReactやVue.jsでは、最初に述べたオブジェクトが格納された配列を扱う機会が多いと思いますので、
Array.prototype.find()の使用頻度も高いのではと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0