オブジェクトをループさせる時は注意が必要
forEach
const l_1 = [1, 2, 3];
const l_2 = [];
l_1.forEach((i) => {
l_2.push(i);
});
console.log(l_2);
const logArrayElements = (element, index, array) => {
console.log('a[' + index + '] = ' + element);
};
// 配列の 2 の位置には項目が存在しないため、
// スキップされることに注意してください
[2, 5,, 9].forEach(logArrayElements);
// 出力結果:
// a[0] = 2
// a[1] = 5
// a[3] = 9
for
const l_3 = ['A', 'B', 'C'];
const l_4 = [];
for (let i = 0; i < l_3.length; i++){
l_4.push(l_3[i]);
};
console.log(l_4);
for...of
const l_5 = [1, 2, 3];
const l_6 = [];
for (let l of l_5) {
l_6.push(l);
}
console.log(l_6);
for...in
と for...of
の違い
for...in
- 連想配列(オブジェクト)を操作する(配列を使ってはならない)
- 値ではなく要素を出力する。
- prototypeで拡張すると意図せず出力されてしまう。
for...of
- 列挙可能なオブジェクト(配列、NodeList、arguments等)を操作する
- 要素ではなく値が出力される