JavaScriptのTypedArray.forEach()メソッドとは?構文と使い方を実例で解説
TypedArrayオブジェクトのforEach()メソッドは、型付き配列内のすべての要素に対して、指定したコールバック関数を先頭から順番に1回ずつ実行するためのメソッドです。通常のArrayオブジェクトのforEach()とほぼ同じように動作しますが、呼び出し対象が型付き配列(Int32Arrayなど)である点が特徴です。
基本構文
typedArray.forEach(callback[, thisArg])
コールバック関数に渡される引数
- element:現在処理中の要素の値
- index:現在処理中の要素のインデックス(0から始まる)
- array:forEach()が呼び出された元のTypedArrayそのもの
第2引数のthisArgを指定すると、コールバック関数内でのthisの参照先を変更できます。
使用例
次の例では、Int32Arrayの各要素に100を加算した結果を出力しています。コールバック関数には「element(要素の値)、index(インデックス)、array(配列本体)」という3つの引数が自動的に渡されます。
<html>
<head>
<title>JavaScript TypedArray forEach Method</title>
</head>
<body>
<script type="text/javascript">
var int32View = new Int32Array([21, 19, 65, 21, 14, 66, 87, 55]);
document.write("Contents of the typed array: "+int32View);
document.write("<br>");
document.write("Result: ");
function testResult(element, index, array) {
document.writeln(element+100);
}
int32View.forEach(testResult);
</script>
</body>
</html>
実行結果
Contents of the typed array: 21,19,65,21,14,66,87,55 Result: 121 119 165 121 114 166 187 155
このように、配列の各要素(21, 19, 65...)に対して100が加算され、121, 119, 165...という結果が順番に出力されていることがわかります。
forEach()を使う際のポイント
- forEach()は常にundefinedを返します。処理結果をもとに新しい配列を作りたい場合は、
map()を使用してください。 - コールバック関数の中で要素を書き換えると、元のTypedArrayの内容も更新されます。
- 本記事のサンプルでは説明のため
document.write()を使っていますが、現代の開発ではconsole.log()の出力利用が推奨されています。 - 型付き配列は生成時に長さが固定されるため、途中で要素が追加・削除されることはなく、すべての要素が確実に処理対象となります。
-
JavaScriptのTypedArray.set()メソッドとは?使い方をサンプルコードで解説
TypedArrayオブジェクトのset()メソッドは、配列(または別の型付き配列)とインデックスを表す数値を受け取り、指定された配列の内容を現在の型付き配列に、指定したインデックスの位置から順にコピーします。既存の要素がある場合は、その位置から上書きされる点に注意してください。 構文 set()メソッドの構文は以下の通りです。 typedArray.set(array, offset) array: コピー元となる通常の配列、または別の型付き配列を指定します。 offset: コピーを開始するインデックス位置を指定します。省略した場合は0(先頭)からコピーされます。 使用例 以下の例では
-
JavaScriptのTypedArray.reverse()関数とは?使い方とサンプルコードを解説
JavaScriptにおけるreverse()関数は、TypedArrayオブジェクトが持つメソッドの一つで、型付き配列(typed array)の要素の並び順を逆にするために使用されます。この記事では、reverse()関数の基本的な構文と、実際のコード例を使った動作について詳しく解説します。基本情報reverse()メソッドは、呼び出し元の型付き配列そのものを反転させ、その結果として同じ配列への参照を返します。つまり、元の配列が直接変更される(破壊的メソッドである)点に注意が必要です。構文reverse()関数の構文は以下の通りです。引数は不要で、非常にシンプルに使えます。typedArr