arr1.fill().forEach((el, idx) => {
console.log(idx, el);
});
------------------------------------
Под капотом (не точно)
forEachfunction forEach(arr, fn) {
var i, len = arr.length;
for(i = 0; i < len; i++) {
fn(arr[i], i, arr);
}
}
mapfunction map(arr, fn) {
var i, len = arr.length, result = [];
for(i = 0; i < len; i++) {
result.push(fn(arr[i], i, arr));
}
return result;
}
как видишь под капотом всё "как обычно". То есть эти методы всего лишь декларативные обёртки поверх всё того же императивного кода. Другими словами, ты не говоришь "как делать", но говоришь "что делать".