Soddisfatti, potrei solo spiegare il problema nei commenti del frammento di codice qui sotto. Per favore leggili attentamente. Domanda alla fine:
Solitamente tendo a nominare le variabili utilizzate in for
loops con i
, in questo modo:
for (var i = 0; i < arr.length; i++){
// do some COMPLEX operations here
}
Questo sembra abbastanza semplice; ma quando ci sono, posso richiedere cicli nidificati all'interno del ciclo for
sopra. Quindi, introducendo la complessità ora:
for (var i = 0; i < arr.length; i++) {
// do some
// VERY
// COMPLEX
// operations
// here
for (var i = 0; i < javascript_object.list.length; i++) {
// I may have inadvertently forgot of the variable 'i' was been used earlier
for (var j = 0; j < javascript_object.list[i].another_list.length; j++) {
// Perform more complex operations here
}
}
this.getReports(arr[i]) // the value of this i
// which I now think refer to the first for loop might have been changed
// in second for loop and may lead to dangerous results!
}
Come evitare che ciò accada? In che modo le variabili possono essere nominate con attenzione in modo da non scontrarsi con altre variabili dichiarate altrove?