JS: arrays durchlaufen

Hallo,

ich stehe vor dem problem, ein array auszuerten, und je nach dem, welcher wert das betreffende Element hat, eine entsprechende aktion ausführen…

also muss ich das Array ‘durchlaufen’ lassen. In PHP würde ich logischerweise sofort zu foreach greifen, aber da ich nichts entsprechendes für JS gefunden hab…

Achja: die Array Elemente sind nicht der rheie nach numeriert, also NICHT 0 1 2 3 4 … sondern eher 49 50 53 54 …

Ich haffe ihr wisst da eine entsprechende lösung :wink:

mfg Joey

Das glaub ich dir nicht… schon mal nach “javascript for each” gegooglet?
Ich finde da haufenweise.

!coffee

jep, aber alles was sich da brachen lässt, läuft nach autor nur im ff :neutral_face:

aber ich versuch mal wat mit while

mfg Joey

forum.de.selfhtml.org/archiv/2006/10/t139539/

:unamused:
Naja, ich hab jetzt sowas:

var c = 0; for(var m in MBRs) { if(m == true) SEND = SEND+","+c; c++; }
Aber leider bleibt dann die var SEND leer…

mfg Joey

zunächst mal was Grundsätzliches: es gibt tatsächlich kein Equivalent zu foreach in JS.

Zweitens ist in Deinem Code “var m” nicht definiert (also null) und kann daher auch keine Werte liefern…

Man kann sich aber mit ein wenig mehr Aufwand helfen:
Zuerst wird die Länge des Arrays bestimmt. Anschließend hilft eine simple for-Schleife, um den Inhalt auszulesen:

var my_array = new Array(1, 2, 4, 8, 16, 32, 64, 128, 256);
var max_index = my_array.length /* ermittelt die Länge des Arrays */
var send = "Ausgabe ";   /* kann natürlich auch leer sein */

for (i=0; i < max_index; i++) {
  if (my_array[i] != "") var send += ", " + i;  /* wenn index nicht leer, wird die "Index-Nummer" zu send hinzugefügt */
}

[quote]zunächst mal was Grundsätzliches: es gibt tatsächlich kein Equivalent zu foreach in JS.[/quote]Das musste ich schon einige male fest stellen xD

Also, vielen dank,
obwohl auch dein code zunächst noch fehlerchen enthielt, etwa ein fehlendes semilkolon, oder ein “var” wo es nicht hingehört… xD

mfg Joey

Ich behaupte einfach mal, dass die “for … in”-Schleife ziemlich ähnlich zu foreach ist.

var my_array = new Array(true, false, false, true, true, true, false); var send = ""; for (i in my_array) { if (my_array[i]==true) { send += ", " + i; } }