JavaScript

Array.prototype.every()メソッド

 編集:2022.08.04 by T.A.

その配列内のすべての要素がコールバック関数での評価がtrueなら、trueを返します。

コールバック関数による:

arr.every(callback[, thisArg])
関数部:
function 関数名(element[, index[, array]]){
 処理
}

インライン コールバック関数による:

arr.every(function(element[, index[, array]]){処理}[, thisArg])

アロー関数による:

arr.every( (element[, index[, array]]) => {処理})
arr Arrayオブジェクト
callback 実行する関数名を記述。
関数名 callbackと同じ名前を記述。
処理 処理プログラム。必ずreturnで評価結果を返す。

アロー関数使用の場合、「{ }」に囲まれていない場合は評価式になります。

element 現在処理されている要素です。
index 省略可。現在処理されている要素の添字です。
array 省略可。every が実行されている配列です。
thisArg 省略可callback を実行するときに this として使用すされる値です。
戻り値

Boolean。

解説

every は、与えられた callback 関数を、配列に含まれる各要素に対して一度ずつ、callback が偽値を返す要素が見つかるまで呼び出します。そのような要素が見つかると、every メソッドはただちに false を返します。callback がすべての要素に対して真値を返した場合、every は true を返します。

注意: このメソッドを空の配列に対して呼び出すと、無条件に true を返します。

callback は値が代入されている配列の要素に対してのみ呼び出されます。つまり、すでに削除された要素や、まだ値が代入されていない要素に対しては呼び出されません。

callback は、要素の値、要素の添字、走査されている Array オブジェクトという 3 つの引数をともなって呼び出されます。

thisArg 引数が every に与えられると、それがコールバックの this として使用されます。それ以外の場合は undefined が this の値として使われます。callback が最終的に監視できる this の値は、関数から見た this の決定に関する一般的なルールによって決定されます。

every は呼び出された配列を変化させません。

every によって処理される要素の範囲は、callback が最初に呼び出される前に設定されます。callback は、every の呼び出しが開始された後に追加された要素に対しては、実行されません。既存の配列要素が変更されたり、削除された場合、callback に渡される値は every がそれらを訪れた時点での値になり、every が削除された要素を訪問することはありません。

every は数学における「∀(すべての/for all)」記号と同様のふるまいをします。具体的に言うと、空の配列に対しては true を返します。(空集合のすべての要素が与えられた任意の条件を満たすことは空虚に真です。)

¶省く

すべての配列要素の大きさをテストする:

次の例は、配列内のすべての要素が 10 よりも大きいかどうかテストします。

function isBigEnough(element, index, array) {
  return element >= 10;
}
D=[12, 5, 8, 130, 44].every(isBigEnough);   //=false
D=[12, 54, 18, 130, 44].every(isBigEnough); //=true

アロー関数の使用:

アロー関数はより短い構文で同じテストを提供します。

D=[12, 5, 8, 130, 44].every(x => x >= 10);   //=false
D=[12, 54, 18, 130, 44].every(x => x >= 10); //=true

¶省く


テスト