Mi chiedo solo perché non sia possibile creare un numero di array indefinito.forEach su array di undefined creato dal costruttore di array
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 eseguire la funzione.
ora a fare foreach, devo fare:
var arr = [0,0,0,0,0];
poi fare forEach su di esso.
Sto provando a creare un array con le dimensioni specificate e ad attraversarlo, evitando il ciclo for
. 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é esiste un problema durante il looping di un array di valori non definiti?
Perché 'Array (5)' non è una matrice di 'indefinito'. Ha esattamente membri '0' anche se il suo' .length' è stato predefinito. –
... anche se non sono sicuro di cosa ti aspetti quando dici gli esempi "return' undefined' ". Il metodo '.forEach()' restituirà sempre 'undefined', indipendentemente da cosa itera sopra. Sembra che la domanda dovrebbe essere se il callback è stato richiamato o meno. –
Hai ragione, non restituire undefined, ma non eseguire la funzione. – Tukkan