概要
与えられた関数によって実行されるテストに配列のすべての要素が合格するかどうかをテストします。
構文
allPassed = array.every(callback[, thisObject]);
引数
callback
- 各要素に対してテストを実行する関数。
thisObject
callback
を実行するときにthis
として使用するオブジェクト。
説明
every
は、与えられた callback
関数を、配列に含まれる各要素に対して一度ずつ、callback
が偽の値を返す要素が見つかるまで呼び出します。 偽の値を返す要素が見つかると、every
メソッドはただちに false
を返します。 callback
がすべての要素に対して真の値を返した場合、every
は true
を返します。 callback
は値が代入されている配列のインデックスに対してのみ呼び出されます。つまり、すでに削除されたインデックスや、まだ値が代入されていないインデックスに対しては呼び出されません。
callback
は、要素の値、要素のインデックス、走査されている Array オブジェクトという 3 つの引数をともなって呼び出されます。
every
に thisObject
パラメータが与えられると、callback
の呼び出しのたびにそのオブジェクトが this
として使用されます。thisObject
が与えられていないか null
の場合は、callback
に結び付けられたグローバルオブジェクトが代わりに使用されます。
every
は呼び出された配列を変化させません。
every
によって処理される要素の範囲は、callback
が最初に呼び出される前に設定されます。every
の呼び出しが開始された後に追加された要素に対しては、callback
は実行されません。既存の配列要素が変更されたり、削除された場合、callback
に渡される値は every
がそれらを訪れた時点での値になり、every
が削除された要素を訪問することはありません。
every
は、数学における「∀ (すべての / for all)」記号と同様のふるまいをします。具体的に言うと、every
は空の配列に対しては true を返します。(空集合のすべての要素が与えられた任意の条件を満たすことは空虚に真 (vacuously true)です。)
互換性
every
はごく最近 ECMA-262 標準 に追加されたメソッドであり、規格外の実装には存在しない場合があります。次のコードをスクリプトの先頭に挿入すると、ネイティブでサポートされていない実装でも every
を使用できるようになります。このアルゴリズムは ECMA-262 第 5 版で指定されたアルゴリズムとまったく同じものです。TypeError
はそれらのオリジナルの値を持ち、また、それらの fun.call
は Function.prototype.call
のオリジナルの値として評価されます。
if (!Array.prototype.every) { Array.prototype.every = function(fun /*, thisp */) { "use strict"; if (this == null) throw new TypeError(); var t = Object(this); var len = t.length >>> 0; if (typeof fun != "function") throw new TypeError(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in t && !fun.call(thisp, t[i], i, t)) return false; } return true; }; }
例
例: 全ての配列要素の大きさをテストする
次の例は、配列内のすべての要素が 10 よりも大きいかどうかテストします。
function isBigEnough(element, index, array) { return (element >= 10); } var passed = [12, 5, 8, 130, 44].every(isBigEnough); // passed is false passed = [12, 54, 18, 130, 44].every(isBigEnough); // passed is true
ブラウザ実装状況
Kangax's compat tables に基づく。
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | 9 | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | ? | ? | ? | ? | ? | ? |