iterableタイプの遍歴方式

5274 ワード

ループArrayは下付きループを採用することができ、ループMapSetは下付きループを使用することができない.集合型を統一するために、ES 6規格は新しいiterable型を導入し、ArrayMapおよびSetはいずれもiterable型に属する.iterable型を有する集合は、新しいfor ... ofサイクルによって巡回することができる.ただし、ブラウザは新しいバージョンでなければサポートされません.
例:for ... ofサイクルで集合を巡回し、次のように使用します.
var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { //   Array
    console.log(x);
}
for (var x of s) { //   Set
    console.log(x);
}
for (var x of m) { //   Map
    console.log(x[0] + '=' + x[1]);
}

また、iterableのタイプに組み込まれた遍歴方法もあり、forEach()の方法はES 5である.1標準が導入されました.SetArrayと似ていますが、Setにはインデックスがありません.したがって、コールバック関数の最初の2つのパラメータは要素自体です.
var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
    console.log(element);
});
Mapのコールバック関数パラメータは、valuekey、およびmapの順である.
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
    console.log(value);
});

いくつかのパラメータに興味がない場合は、JavaScriptの関数呼び出しはパラメータが一致する必要がないため、無視できます.例えば、Arrayelementを得るだけです.
var a = ['A', 'B', 'C'];
a.forEach(function (element) {
    console.log(element);
});