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メソッドを使うことで、配列の要素がひとつでも合っているか確認できる。
・配列の要素が、指定した判定関数に、ひとつでもあてはまる場合にはtrueを返す。違う場合はfalseになる。
everyメソッドと使い分けて、効率よく判定処理を実装していきたいですね。
コメント