JavaScriptのeveryメソッドの使い方について書いています。
everyメソッドは配列から呼び出すことができるメソッドです。
配列の全ての要素が条件に合っているときにtrueが返ってきます。
JavaScriptのeveryメソッドとは?
every
メソッドは、配列のすべての要素に対して、指定したコールバック関数を実行します。
そして、その結果が全て合っていればtrue
を返します。
条件を満たさない要素が一つでもあればfalse
になります。
構文:
array.every(callback);
array.every(callback, thisArg); // thisArgは省略可能
パラメータ:
– callback
:配列の各要素に適用される関数、配列を評価する関数を渡す。
– thisArg
(省略可能):callback
内で使用されるthis
。
戻り値:
– 全ての要素が条件を満たす場合はtrue
、それ以外はfalse
。
everyメソッドを使って数値を判定する
配列要素の数値が、全て10より大きいかを判定します。
const numbers = [12, 15, 20, 25];
const result = numbers.every(number => number > 10);
console.log(result); // true
numbers
変数が配列となっています。
このnumbers
配列から、every
メソッドを呼び出すことができます。
every
メソッドに渡しているのが、配列の値を評価するための関数です。
number
に配列の値がひとつずつはいってきて、「12 > 10
, 15 > 10
, 20 > 10
, 25 > 10
」と全ての値を比較してくれます。
全ての値が条件に合っている場合は、true
が返ってきます。
上記の例では、全ての値があっているためtrue
が返ります。
false
が返ってくるのは、下記のように条件に合わない値がひとつでもあるときです。
const numbers = [12, 15, 9, 25];
const result = numbers.every(number => number > 10);
console.log(result); // false
このコードは先ほどと同じですが、配列の「20
」が「9
」になっています。
条件として判定している10より低い値が入っているので、false
が返ってきます。
everyメソッドを使って文字列を判定する
every
メソッドを使って、配列の文字列の全ての要素に指定した文字が入っているか判定しています。
const fruits = ['orange', 'apple', 'peach'];
const search = (fruit) => {
return fruit.includes('e');
}
const result = fruits.every(search);
console.log(result); // true
fruits
配列に果物の名前を入れて、配列を作成しました。
次の行で、判定用の関数をsearch
に定義しています。
そして、fruits
からevery
メソッドを呼び出して、search
関数を渡しました。
search
関数ではincludes
を使って、文字列の中に「e
」を含むかを判定しています。
配列要素の果物名全てに「e
」が含まれるため、true
が返ってきます。
配列が空の場合は?
配列が空の場合、every
メソッドは常にtrue
を返します。
const emptyArray = [];
const result = emptyArray.every(number => number > 10);
console.log(result); // true
emptyArray
配列は空です。
every
メソッドを呼び出して、何を渡してもtrue
が返ってきます。
おわりに
今回はJavaScriptのeveryメソッドについて書いていきました。
記事の内容をまとめると、下記のようになります。
・everyメソッドを使うことで、配列の要素の全てが合っているか確認できる。
・配列の要素が、指定した判定関数に全てあてはまる場合にはtrueを返す。違う場合はfalseになる。
配列要素の全てに対して、forEachを使わずに判定できるため便利ですね。
コメント