JavaScriptの配列に対して、要素が条件に合致するものが存在するかを判定する方法について解説します。
![](https://tech.mychma.com/wp-content/uploads/2022/05/hukidashi2_nayamu.png)
配列に対して、要素が条件に合致するものが存在するかを判定するにはどうすればいいですか?
![](https://tech.mychma.com/wp-content/uploads/2022/05/hukidashi1_normal.png)
![](https://tech.mychma.com/wp-content/uploads/2022/05/hukidashi1_normal.png)
![](https://tech.mychma.com/wp-content/uploads/2022/05/hukidashi1_normal.png)
配列に対して、要素が条件に合致するものが存在するかを判定するには、someメソッドを使用します。
someメソッドの使った配列要素の条件の判定方法
someメソッドは、配列の要素が指定した条件に合致するものが存在するかを判定するために使用します。
引数には、配列の要素に対して実行する処理を記述したコールバック関数を渡します。
配列.some(function(要素値, インデックス, 元の配列) , [, thisValue])
一度でもtrueを返すと、someメソッドは即座にtrueを返し配列の要素の走査を中止します。
const numbers = [1, 2, 3, 4, 5];
const isEven = number => number % 2 === 0;
console.log(numbers.some(isEven)); // true
上記の例では、numbers配列に対してisEven関数を実行し、要素が偶数であるかを判定しています。
isEven関数が最初に見つかった偶数である2に対してtrueを返すため、someメソッドはすぐにtrueを返します。
someメソッドは配列の要素を走査しながら、引数に渡した関数を実行するため、配列の要素を処理した結果を返すこともできます。
例えば、配列の要素がすべて数値であるかどうかを判定する場合、配列の要素を走査しながら、isNaN関数を使用して要素が数値かどうかを判定し、一度でもfalseが返った場合にはfalseを返すように関数を定義することができます。
filterメソッドを使って条件抽出する
filterメソッドは配列の要素をコールバック関数で判定し、条件に合う要素だけを新しい配列に格納します。
filterメソッドは、配列の各要素を関数に渡し、その結果がtrueだった要素だけを集めた新しい配列を返します。
関数に渡される引数には、「配列の各要素」「そのインデックス」「元の配列」の3つが渡されます。
配列.filter(function(要素値, インデックス, 元の配列){..true/falseを判定する処理…} [, thisValue])
filterメソッドを使って条件抽出する方法については「JavaScript 配列の要素が条件に合致するものが存在するか判定する方法」で詳しく解説しています。
この記事のまとめ
someメソッドを使った配列の要素が条件に合致するものが存在するか判定する方法について解説しました。
- someメソッドは、配列の要素を走査しながら、引数に渡した関数を実行します。
- 関数が一度でもtrueを返すと、someメソッドは即座にtrueを返し、配列の走査を中止します。
![](https://tech.mychma.com/wp-content/uploads/2022/05/hukidashi2_normal.png)
![](https://tech.mychma.com/wp-content/uploads/2022/05/hukidashi2_normal.png)
![](https://tech.mychma.com/wp-content/uploads/2022/05/hukidashi2_normal.png)
someメソッドを使うことで、配列の要素が条件に合致するものが存在するかを簡単に判定することができました!
コメント