JavaScriptのsomeメソッドの使い方!

JavaScript

JavaScriptのsomeメソッドの使い方について書いています。
someメソッドは配列から呼び出すことができるメソッドです。

JavaScriptのsomeメソッドとは?

someメソッドは配列から呼び出すことができ、指定した関数で配列を判定して、配列要素がひとつでも条件を満たすとtrueを返します。

構文:

array.some(callback);
array.some(callback, thisArg); // thisArgは省略可能

パラメータ:
callback:配列の各要素に適用される関数、配列を評価する関数を渡す。
thisArg(省略可能):callback内で使用されるthis

戻り値:
– 要素がひとつでも条件を満たす場合はtrue、それ以外はfalse

someメソッドを使って数値を判定する

someメソッドを使って、配列要素がひとつでも10より大きいか判定します。

const numbers = [1, 3, 11, 7, 8];

const result = numbers.some(number => number > 10);
console.log(result); // true

数値配列のnumbers変数を作っています。
そして、numbersからsomeメソッドを呼び出して、指定した関数で判定しています。

配列要素がひとつずつ、number変数に取り出されて判定されます。
numbers配列には「11」が入っています。「10」より大きい数字があるので、trueが返ってきます。

someメソッドを使って文字列を判定する

someメソッドを使って、配列要素に指定した文字列がひとつでもあるか判定します。

const fruits = ['apple', 'banana', 'peach', 'melon', 'grape'];
const searchPeach = (value) => {
  return value === 'peach';
}

const result = fruits.some(searchPeach);
console.log(result); // true

果物名の配列をfruits変数に作りました。
その次の行で、searchPeach関数を作成して、渡された要素が「peach」かを確認しています。

そして、fruits変数からsomeメソッドを呼び出して、判定するsearchPeach関数を渡しています。
配列には「peach」が含まれているので、trueが返ってきます。

配列が空の場合は?

空の配列の場合には、someメソッドは常にfalseが返ってきます。

const emptyArray = [];
const result = emptyArray.some(number => number > 10);

console.log(result); // false

emptyArray変数は空配列です。
その次の行で、someメソッドを呼び出していますが、空配列のためfalseが返ってきます。

空配列の時にeveryメソッドはtrueを返すので、間違えないように気をつけたいところです。

おわりに

今回はJavaScriptのsomeメソッドについて書いていきました。
記事の内容をまとめると、下記のようになります。

・someメソッドは配列から呼び出すことができるメソッド。
・someメソッドを使うことで、配列の要素がひとつでも合っているか確認できる。
・配列の要素が、指定した判定関数に、ひとつでもあてはまる場合にはtrueを返す。違う場合はfalseになる。

everyメソッドと使い分けて、効率よく判定処理を実装していきたいですね。

コメント

タイトルとURLをコピーしました