for

オブジェクトをループさせる時は注意が必要

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...infor...of の違い

for...in

  • 連想配列(オブジェクト)を操作する(配列を使ってはならない)
  • 値ではなく要素を出力する。
  • prototypeで拡張すると意図せず出力されてしまう。

for...of

  • 列挙可能なオブジェクト(配列、NodeList、arguments等)を操作する
  • 要素ではなく値が出力される