Was macht das folgende Javascript?Javascript - was macht diese Zeile?
Antwort
With i starting at -1
increase i by 1
get the ith element from the groupsCounty array
if there is no such element: stop
otherwise: assign it to group and carry on (with whatever "…" is)
Es ist eine optimierte Version von:
for (var i = 0; i < groupsCounty.length; i++;){
var group = groupsCounty[i];
…
}
Ist es sicher, auf diese Weise eine Schleife zu machen? (Wie funktioniert es in allen Browsern?) – digiguru
Übertrifft die for-Schleife der Frage tatsächlich die for-Schleife in dieser Antwort? In CPU oder im Speicher verwendet? – jpabluz
@David, stimmt das? group = groupsCounty [++ i] ist ein bisschen verwirrend für mich –
Es wird über die Elemente von Gruppen iteriert, wobei das Vorhandensein eines Werts in der Gruppe als Schutzbedingung verwendet wird. d. h. Verwendung von JavaScript-Wahrhaftigkeit, um die Anzahl der Wiederholungen der Schleife zu steuern, da der Schutz falsch ist, wenn kein Wert zugewiesen werden kann.
Die for
loop führt durch das groups
Array, bis groupsCounty[++i]
einen falschen Wert zurückgibt.
Mit Verwendung der folgenden Begriffe:
for (<initial-expression>; <condition>; <final-expression>)
Die Anfangsausdruckvar i = -1, group
deklariert die Variablen i
und group
. Für jede Iteration ordnet die Schleife Bedingunggroup = groupsCounty[++i]
den nächsten Array-Wert zu group
zu. Wenn dieser Ausdruck falsch ist (z. B. groupsCounty[++i]
gibt undefined zurück, wenn er außerhalb der Grenzen liegt), wird die Schleife angehalten. Und der Endausdruck ist leer, da i
bereits innerhalb der Contition Ausdruck erhöht ist.
Es äquivalent ist
for (var group in groupsCounty) {
...
}
Mit dem Mehrwert (i
) mit dem Indexzugriff haben.
"Gruppe" wäre __be__ der Indexwert, dann müssten Sie das Array dereferenzieren, indem Sie 'anotherVariable = groupdCountry [group]' verwenden, um den Wert zu ermitteln. – AnthonyWJones
Es ist nicht gleichwertig. Eine 'for ... in'-Schleife zählt alle Eigenschaften des Objekts auf, einschließlich der vom Prototyp des Objekts geerbten Eigenschaften in einer undefinierten Reihenfolge. Sie haben also eine andere Schleifenreihenfolge und möglicherweise werden mehr Eigenschaften iteriert. In Ihrem Beispiel wäre "group" der Eigenschaftsname und nicht der Eigenschaftswert wie in der ursprünglichen Frage. –
Sein dies zu tun: -
var groups = countrylist.split(',');
for(var i = 0; i < groups.length; i++)
{
var group = groups[i]
...
}
Der einzige wirkliche Unterschied ist, dass die oben ist weitaus häufiger und leichter erkennbar. Sie hätten den obigen Code nicht mit der Frage "Was macht das?" Gepostet.
Der Code, den Sie gepostet haben, ist ein Beispiel für clevere Entwicklung, aber nicht unbedingt gute Programmierpraxis.
- 1. Was macht diese JavaScript-Zeile?
- 2. Was macht diese Delegiertenmethode?
- 3. Was macht diese Abfrage?
- 4. Was macht diese Bedingung?
- 5. Was macht diese verschachtelte Annotation?
- 6. Was macht diese LINQ-Abfrage?
- 7. Was macht diese Codezeile? Verwirrt
- 8. Was macht diese dynamische Zuweisung?
- 9. mod_rewrite: Was macht diese RewriteRule?
- 10. Was macht diese PHP-Codezeile?
- 11. Was macht diese Daemon-Methode?
- 12. Was macht diese Callback-Funktion?
- 13. Was macht diese Bucket-Sortimplementierung?
- 14. Was macht/[\ []/in JavaScript?
- 15. Was macht this.async() in JavaScript?
- 16. Was macht dieser Javascript-Code?
- 17. Was bedeutet diese Zeile des Matlab-Codes?
- 18. Was macht das Drucken einer leeren Zeile?
- 19. Was macht diese Funktion und was bedeutet das? `
- 20. Was macht diese Stapelprüfung der PPC-Baugruppe?
- 21. Was macht diese Funktion? Wie funktioniert es?
- 22. Was macht diese x86 Inline-Assembly?
- 23. Was macht diese Funktion? (Python iterators)
- 24. Was macht diese SQL-Anweisung? (Mysql)
- 25. Was macht diese Intel jmpq-Anweisung?
- 26. Was macht diese Schleife mit PHP $$ Syntax?
- 27. was diese Methode macht istExternalStorageRemovable und isExternalStorageEmulated
- 28. React Native - Was macht pressRetentionOffset? Diese
- 29. Was macht das in Javascript?
- 30. Was macht dieses JavaScript-Snippet?
Sind 'groups' und' groupsCounty' die gleiche Variable? –
Ich würde gerne wissen - ich versuche herauszufinden, was auf der Seite kaputt ist: p – digiguru
Das ist sicher gebrochen. Ändern Sie 'var groups = countrylist.split (',');' für 'var groupsCounty = countrylist.split (',');'. Wahrscheinlich hat jemand diese Variable umgestaltet und umbenannt, aber seine Arbeit nicht beendet. –