forEachは配列の値がundefinedになっていたら、スルーされる挙動をするみたいだな。
それから、空の配列に対してforEachを使用してもエラーにはならない。
const array1 = [];
array1[1] = 90;
array1[5] = 190;
console.log("array1");
for (let i = 0; i < array1.length; i += 1) {
console.log("array1[" + i + "] = " + array1[i]);
}
console.log("---------");
array1.forEach((element, i) => {
console.log("array1[" + i + "] = " + element);
});
const array2 = [];
array2.forEach((element, i) => {
console.log("array2[" + i + "] = " + element);
});
/*
array1
array1[0] = undefined
array1[1] = 90
array1[2] = undefined
array1[3] = undefined
array1[4] = undefined
array1[5] = 190
---------
array1[1] = 90
array1[5] = 190
*/