Così, quando l'indice è 0, voglio stamparlo:Perché non viene stampato questo copione del caffè?
a = [ 1, 2, 3 ]
for i of a
if i == 0
console.log a[i]
ma non v'è alcuna uscita.
i == 0
non è mai vero ...
Così, quando l'indice è 0, voglio stamparlo:Perché non viene stampato questo copione del caffè?
a = [ 1, 2, 3 ]
for i of a
if i == 0
console.log a[i]
ma non v'è alcuna uscita.
i == 0
non è mai vero ...
i restituisce l'indice come una stringa, se li si analizza come un intero, che avrebbe funzionato
a = [ 1, 2, 3 ]
for i of a
if parseInt(i) == 0
console.log a[i]
È perché i
sarà solo 1, 2 o 3, come si esegue un ciclo sulle voci di a
, non i numeri di indice.
Questo funziona nel modo descritto sopra:
a = [ 1, 2, 3 ]
for i in [0..a.length]
if i == 0
console.log a[i]
ciao, grazie per la tua risposta :) Tuttavia stavo girando sull'indice. Si noti che stavo usando 'of' ma' in'. – x1a0
@ZhangXiao: non si deve usare 'of' per eseguire il loop su un array, utilizzare' in' per eseguire il loop su array. –
@muistooshort Grazie. Capisco la differenza e in questo caso uso 'of' :) – x1a0
non si dovrebbe usare of
per eseguire il loop su un array, è necessario utilizzare in
. Da fine manual:
Le comprensioni possono anche essere utilizzate per iterare su chiavi e valori in un oggetto. Utilizzare
of
per segnalare la comprensione sulle proprietà di un oggetto anziché i valori in una matrice.yearsOld = max: 10, ida: 9, tim: 11 ages = for child, age of yearsOld "#{child} is #{age}"
Quindi si sta cercando per scorrere i proprietà di un oggetto array, non i suoi indici.
Si consiglia di utilizzare uno di questi per il ciclo:
for e, i in a
if(i == 0)
console.log(a[i])
for e, i in a
console.log(e) if(i == 0)
console.log(e) for e, i in a when i == 0
#...
Oppure, dal momento che si dispone di un array e un indice numerico, perché non basta saltare il ciclo e arrivare subito al punto:
console.log(a[0])
Sì, hai ragione! Ho appena capito da solo minuti fa ... LOL Grazie comunque :) – x1a0
@ZhangXiao Ma la risposta di kurmiau è stata pubblicata prima della tua. Quindi, ti suggerisco di eliminare la tua risposta e accetta questa. –
@RobW Hai ragione. Lo farò :) – x1a0