TypedArray.prototype.forEach()
forEach()
メソッドは、配列の要素ごとに一度与えられた関数を実行します。このメソッドは Array.prototype.forEach()
と同じアルゴリズムを持っています。ここで TypedArray は型付き配列型の一つです。
試してみましょう
構文
js
// アロー関数
forEach((element) => { /* ... */ } )
forEach((element, index) => { /* ... */ } )
forEach((element, index, array) => { /* ... */ } )
// コールバック関数
forEach(callbackFn)
forEach(callbackFn, thisArg)
// インラインコールバック関数
forEach(function(element) { /* ... */ })
forEach(function(element, index) { /* ... */ })
forEach(function(element, index, array){ /* ... */ })
forEach(function(element, index, array) { /* ... */ }, thisArg)
引数
callbackFn
-
新しい型付き配列の要素を生成する関数。
関数は以下の引数で呼び出されます。
element
-
型付き配列内で処理される現在の要素。
index
-
配列内で処理される現在の要素の添字。
array
-
forEach()
が呼び出される配列。
thisArg
省略可-
callbackFn
を実行するときthis
として使用する値。
返値
undefined
です。
解説
forEach()
メソッドは与えられた callbackFn
を、型付き配列内に存在するそれぞれの要素に一度ずつ昇順に実行します。削除されたり、省略されたりしたインデックスに対しては呼び出されません。ただし、存在していて undefined
の値を持つ要素に対しては実行されます。
callbackFn
は次の 3 つの引数で呼び出されます。
- 要素の値
- 要素の添字
- 走査中の型付き配列
thisArg
引数が forEach()
に与えられた場合は、 callbackFn
の呼び出し時にそのオブジェクトが this
の値として使用されます。与えられなかった場合は、 undefined
が this
の値として使用するために渡されます。 callbackFn
によって最終的に観測可能な this
値は関数から見える this
を特定する一般規則に従います。
forEach()
によって処理される要素の範囲は callbackFn
の最初の呼び出し前に設定されます。 forEach()
の呼び出しが始まったあとで型付き配列に追加される要素は、 callbackFn
によって処理されます。型付き配列内に存在している要素の値が変更されたら、 callbackFn
に渡される値は、forEach()
メソッドが処理する直前の値です。つまり、処理される前に削除されている要素は処理されません。
forEach()
は型付き配列の各要素ごとに一度 callbackFn
関数を実行します。 every()
や some()
とは異なり、常に、undefined
値を返します。
例
型付き配列の内容をログに出力する
以下のコードは型付き配列内の各要素を 1 行ずつ出力します。
js
function logArrayElements(element, index, array) {
console.log(`a[${index}] = ${element}`);
}
new Uint8Array([0, 1, 2, 3]).forEach(logArrayElements);
// 出力:
// a[0] = 0
// a[1] = 1
// a[2] = 2
// a[3] = 3
仕様書
Specification |
---|
ECMAScript Language Specification # sec-%typedarray%.prototype.foreach |
ブラウザーの互換性
BCD tables only load in the browser