|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2007
Messaggi: 659
|
[JS] Conteggio degli Zeri
Ragazzi so che è stupido stupido come programma ma sto imparando.. e non capisco dov'è l'errore
![]() Codice:
function forEach(array, action) { for (var i = 0; i < array.length; i++) action(array[i]); } var base=0; function reduce(combine, base, array) { forEach(array, function (element) { base = combine(base, element); }); return base; } function countZeroes(numeri){ return reduce(function (a, b){if (b===0) {a=a+1; return a;}}, 0, numeri); } alert(countZeroes([0,23,0,23,4,0,0,4])); Avete qualche idea?..Continua a restituirmi Undefined ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Controlla return a;
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2007
Messaggi: 659
|
Codice:
function forEach(array, action) { for (var i = 0; i < array.length; i++) action(array[i]); } var base=0; function reduce(combine, base, array) { forEach(array, function (element) { base = combine(base, element); }); return base; } function countZeroes(numeri){ return reduce(function (a, b){if (b===0) {return a+1;}}, 0, numeri); } show(countZeroes([0,23,0,23,4,0,0,4])); Potresti essere più preciso? ![]() Grazie! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Si tratta di una subdola stupidata: non ritorni sempre qualcosa, il return è annidato in una graffa di troppo.
La funzione anonima passata a reduce finisce per "ritornare" undefined tutte le volte che non incontra uno zero. Codice:
function forEach(array, action) { for (var i = 0; i < array.length; i++) action(array[i]); } var base=0; function reduce(combine, base, array) { forEach(array, function (element) { base = combine(base, element); }); return base; } function countZeroes(numeri){ return reduce(function (a, b){if (b===0) {a=a+1; } return a; }, 0, numeri); } alert(countZeroes([0,23,0,23,4,0,0,4]));
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Dec 2007
Messaggi: 659
|
Quote:
Ahh.. ![]() Sei un grande. Grazie ![]() |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Prego, in tutti i casi complimenti per la follia di questa conta
![]() Tra l'altro la variabile base contemporaneamente globale ed argomento mi fa un po' deragliare la psiche... non ho ancora afferrato al 100% che strada segue, però funziona. Edit: ok, funziona anche eliminando base globale, ora mi sento più sollevato...
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) Ultima modifica di Gimli[2BV!2B] : 29-12-2011 alle 20:02. Motivo: Non ci avrei dormito stanotte! |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Dec 2007
Messaggi: 659
|
Quote:
![]() Solo che ora ho un altro problema che mi fa deragliare veramente..ma apro un altro thread. ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:37.