November 2021
Intermediate to advanced
784 pages
12h 13m
Japanese
反復可能なオブジェクトとイテレータはES6の機能です。本書では、これまで何度も紹介してきました。型付き配列を含めて、配列は反復可能です。同じように、文字列やSetオブジェクト、Mapオブジェクトも反復可能です。つまり、§5.4.4で説明したように、これらのデータ構造の内容は、for/ofループを使って反復(巡回)することができます。
let sum = 0;
for(let i of [1,2,3]) { // 値ごとに1度ループする。
sum += i;
}
sum // => 6
また、§7.1.2で説明したように、反復可能なオブジェクトは、...演算子を使って、配列の初期化や関数呼び出しの際に展開できます。この展開を行うときにもイテレータが使われます。
let chars = [..."abcd"]; // chars == ["a", "b", "c", "d"] let data = [1, 2, 3, 4, 5]; Math.max(...data) // => 5
イテレータは分割代入でも使われます。
let purpleHaze = Uint8Array.of(255, 0, 255, 128); let [r, g, b, a] = purpleHaze; // a == 128
Mapオブジェクトを反復する場合、戻り値は[キー, 値]ペアになります。つまり、for/ofループ中で分割代入を行うことができます。
let m = new Map([["one", 1], ["two", 2]]); for(let [k,v] of m) console.log(k, v); // 「one 1」、「two 2」とログに記録。 ...
Read now
Unlock full access