JavaScript Array.some()とevery() - 配列条件のテスト

Array.some()とevery()で配列全体の条件テストを学びます。ショートサーキット、空配列、実用的なバリデーションパターンを含みます。無料リファレンス。

Testing

詳細な説明

some()とevery()を理解する

これら2つのメソッドは配列の要素が条件を満たすかテストします。どちらもパフォーマンスのためにショートサーキットします。

Array.some()

少なくとも1つの要素がテストに合格した場合trueを返します:

const nums = [1, 2, 3, 4, 5];
nums.some(n => n > 3);   // true
nums.some(n => n > 10);  // false

Array.every()

すべての要素がテストに合格した場合trueを返します:

const ages = [18, 21, 25, 30];
ages.every(a => a >= 18);  // true

空配列の動作

[].some(x => true);   // false
[].every(x => false);  // true(空論的に真)

every()は空配列でtrueを返します。テスト対象の要素がないため条件が自明に満たされるからです。

ユースケース

some()はリスト内のいずれかのアイテムが条件を満たすかチェックに使用(エラーあり、選択済み、検索一致)。every()は処理前にすべてのアイテムが要件を満たすかの検証に使用(フォームバリデーション、権限チェック、バッチ操作ガード)。

試してみる — JavaScript Array Methods Reference

フルツールを開く