Javascript everyメソッド

everyメソッドの使い方をメモ。

forループの場合

まず、forループを使って書いたコード。
オブジェクト配列の各要素で、priceの値が全て100以上ならtrue。priceの値が1つでも100未満であれば、falseとする処理。

var collections = [
    {name: 'apple' , price: 100},
    {name: 'orange', price: 200},
    {name: 'grape' , price: 300}
];
var result = true;

for(var i = 0; i < collections.length; i++) {
    if(collections[i].price < 100) {
        result = false;
    }
}
console.log(result);

結果は[true]。
forループの中にif文があって、階層が1つ深くなっている。
処理自体はシンプルだが、読みづらさがある。

everyの場合

それをeveryで書き換える。

var collections = [
    {name: 'apple' , price: 100},
    {name: 'orange', price: 200},
    {name: 'grape' , price: 300}
];

var result = collections.every(function(value){
    return value.price >= 100;
});

console.log(result);

結果は同じく[true]。
everyは、各要素を使ってコールバック関数(function(value))で条件に合致するか判定を行い、その結果として真偽値を返す。全ての要素がtrueとなる場合に、everyの結果としてtrueが返る。
※return文は必ず付ける
return文が無い場合、undefinedが返り値となり、結果がfalseとなってしまう
forループを使った時よりも記述が少なく、シンプル。everyの意味を知っていれば処理が理解しやすい。
everyは配列要素に対する何かしらのチェック処理や、リクエスト前のバリデーションチェックなどに使える。

まとめ

・everyは、forループよりも書き方がシンプル。
・everyは、forループよりも可読性が増す。
・コールバック関数内で真偽値を返すので、returnを忘れないこと。
・配列の各要素が条件を満たしているかをチェックすることに使う。
 例えば、リクエスト前のバリデーションチェック 等

この記事が気に入ったらサポートをしてみませんか?