forEach su array di undefined creato dal costruttore di array

Mi sto solo chiedendo il motivo per cui non è ansible fare ogni cosa su una serie di indefiniti.

Codice:

var arr = new Array(5); // [undefined x 5] //ES5 forEach arr.forEach(function(elem, index, array) { console.log(index); }); //underscore each _.each(arr, function(elem, index, array) { console.log(index); }); 

Entrambi gli esempi non eseguono la funzione.

Ora per fare foreach, devo fare:

 var arr = [0,0,0,0,0]; 

Quindi fai su ogni cosa.

Sto cercando di creare un array con dimensioni specificate e di eseguirne il ciclo, evitando loop. Penso che sia più chiaro usando forEach che for loop. Con array con lunghezza 5 non è un problema, ma sarebbe brutto con array più grandi.

Perché c’è un problema nel looping di array di valori non definiti?