March 04, 2020

JavaScriptで配列の中から何かを探したい時のメソッドまとめ

配列の中から条件に合う要素を探したい時のメソッドまとめ。find(), filter(), findIndex(), some()

Updated at November 06, 2020

配列の中から特定の要素を持つオブジェクトを探す時のメソッドまとめ。

※サンプルコードは全て ES2015 のアロー関数(Arrow Function)を使っています。


find() 条件に合う最初のオブジェクトを 1 つ探す時

条件に合う 最初のオブジェクトが 1 つ だけ返る。
無ければ undefined が返る。

const users = [
  { name: "Emma", age: 20 },
  { name: "Jake", age: 30 },
  { name: "Lily", age: 40 },
  { name: "Harry", age: 20 },
]

const targetUser = users.find(friend => friend.age === 20)
console.log(targetUser)

結果:

console.log
{ name: 'Emma', age: 20 }

Emma だけが返る、Harry は返らない。

参考 :
Array.prototype.find() – JavaScript | MDN


filter() 条件に合うオブジェクト全てを探す時

条件に合うオブジェクト 全て が配列で返る。
見つからなかったら空の配列。

const users = [
  { name: "Emma", age: 20 },
  { name: "Jake", age: 30 },
  { name: "Lily", age: 40 },
  { name: "Harry", age: 20 },
]

const targetUser = users.filter(friend => friend.age === 20)
console.log(targetUser)

結果:

console.log
[{ name: "Emma", age: 20 }, { name: "Harry", age: 20 }]

Emma も Olivia も返る。

参考 :
Array.prototype.filter() – JavaScript | MDN


findIndex() 条件に合うオブジェクトのインデックスを知りたい時

条件に合う 最初のオブジェクトのインデックス だけが返る。
見つからなかったら -1 が返る。

const users = [
  { name: "Emma", age: 20 },
  { name: "Jake", age: 30 },
  { name: "Lily", age: 40 },
  { name: "Harry", age: 20 },
]

const index = users.findIndex(friend => friend.age === age)
console.log(index)

結果:

console.log
0

Emma の index 0 だけが返る。Harry の index は返らない。

参考 :
Array.prototype.findIndex() – JavaScript | MDN


some() 条件に合うオブジェクトがあるかないかだけ知りたい時

条件に合うオブジェクトが 1 つでもあれば true 、無ければ false が返る。

const users = [
  { name: "Emma", age: 20 },
  { name: "Jake", age: 30 },
  { name: "Lily", age: 40 },
  { name: "Harry", age: 20 },
]

const existing = users.some(friend => friend.age === 20)

console.log(existing)

結果:

console.log
true

参考 :
Array.prototype.some() – JavaScript | MDN

高橋あゆみ

高橋あゆみ
フリーランスのUI/UXデザイナー。英語圏のロマンス・ミステリー小説にハマり、一向に減らない積読が悩み。カナダのバンクーバー在住。