JavaScript

JavaScriptで配列要素が全て条件を満たしているか確認する方法(every)

本記事では、JavaScriptで配列要素が全て条件を満たしているか確認する方法について解説しています。

JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

本書情報
出版社技術評論社
著者山田 祥寛
発売日2023/2/13
ページ数624ページ
レビュー
(Amazon)
(4件)
先輩くん
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

everyメソッドの使い方

配列要素が全て条件を満たしているか確認するには、everyメソッドを使用します。基本的な使い方は以下のとおりです。

let result = Array.every((value,index,array) => /* 条件 */);
構文解説
  • result:boolean値が返される
  • Array:対象の配列
  • value(第一引数):配列要素
  • index(第二引数):インデックス番号(添え字)
  • array(第三引数):対象の配列

コールバック関数に渡される、value(第一引数)・index(第二引数)・array(第三引数)の中身を確認してみましょう。

let numArr = [10, 30, 50];

let result = numArr.every((value, index, array) => {
  console.log(`value:${value}\nindex:${index}\narray:${array}`);
});

/* コンソールログ *
 * value:10
 * index:0
 * array:10,30,50
 */

コンソールログを確認すると、第一引数のvalueには配列要素が、第二引数のindexにはインデックス番号(添え字)が、第三引数のarrayには対象の配列が代入されていることが分かります。

また、everyメソッドは一つでも条件に一致しなければループを抜けてしまうため、上記のようなコードは配列要素が何個あろうが1度しかループ処理されません。

実際に、everyメソッドを使用して配列要素が全て条件を満たしているか確認してみましょう。

let numArr = [10, 30, 50];

let result1 = numArr.every((value) => value < 60);
let result2 = numArr.every((value) => value < 40);

console.log(result1); // => true
console.log(result2); // => false

1つ目のeveryメソッドでは、配列要素が全て60未満の値か判定しています。配列に代入されている値は最大値が50なので全て条件を満たしています。そのためtrueが返されています。

2つ目のeveryメソッドでは、配列要素が全て40未満の値か判定しています。1つだけ40以上の数値があるため配列要素が全て条件を満たしていません。そのためfalseが返されています。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村