Wie kann ich mit einer for in schleife die einzelne Arrays durchlaufen lassen Danke:)?

...komplette Frage anzeigen

4 Antworten

Da du hier die for-in-Schleife ansprichst, gehe ich auch nochmal direkt darauf ein.

Vorab aber: In deinem Falle nicht die beste Methode, nach der du suchst. Du suchst eher nach forEach oder einfach nach einer normalen for-Schleife bei der du einen Integer hochzählst. (Also was bereits schon alles genannt wurde)

Die for-in-Anweisung durchläuft Attribute/Eigenschaften von Objekten. (Also auch Arrays und Co.) Dabei werden nur aufzählbare Eigenschaften durchlaufen. (Was allerdings der Standardfall ist)

Hierbei ist die Reihenfolge jedoch unwichtig/willkürlich, weshalb das ggf. nicht das ist was du möchtest.

Eine Implementation sähe ungefähr wie folgt aus:

for(var id in auto)
console.log(auto[id]);

Der Wert den id erhält ist dabei nicht der Wert des Arrayfeldes, sondern nur der Name der Eigenschaft. (in dem Falle also "0", "1" und "2") Auf den Wert musst du dann manuell zugreifen. (D.h. hierbei handelt es sich nicht wirklich um ein for-each Äquivalent)

Siehe auch:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in


Ansonsten gibts noch das neue for-of-Statement das zum ES6-Standard gehört, mit dem das ganze in neueren Browsern auch möglich wäre:

[Code-Beispiel als Antwort hierauf da die Formatierung durcheinandergeraten ist]

Hierbei nimmt die Variable (in dem Falle value) den Wert der jeweiligen Eigenschaft an. Außerdem wird bspw. die Index-Reihenfolge bei den Arrays berücksichtigt, was ja bei for-in nicht der Fall ist.

Aktuell aber noch von Abzuraten, auch wenn das jetzt nicht das absolut neueste ist, aber der Internet Explorer (der ja immer noch genutzt wird) unterstützt das Feature scheinbar nicht.

Siehe auch:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Sarkophator
05.05.2016, 15:25

Hier das Code-Beispiel zum for-of-Statement:

for(let value of auto)
  console.log(value);

Die Ausgabe ist bei beiden Beispielen übrigens:

bmw
Tesla
Fisker
0

Neben der klassischen for-i-Schleife gibt's auch noch das neuere forEach:

autos.forEach(function(auto) {

    alert(auto);
});
   

Demo: https://jsfiddle.net/dcLzw8df/1/

Antwort bewerten Vielen Dank für Deine Bewertung

For (i=0 && i<=3; i++)
{
System.out.print (auto[i])
}

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Deivil
05.05.2016, 12:53

damit noch die zahlen vorstehen: system.out.println(i+1"."+auto[i])

1
Kommentar von Deivil
05.05.2016, 12:55

und die forschleife ist eigentlich auch for(int i=0; i<=2; i++)

1

for (int i = 0; i < auto.lenght; i++) {
    String object = auto[i];
    alert((i+1)+"."+object);
}

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?