Uhudler: Javascript: Update Wert in Array?

Hallo, wie aktualisiere ich einen Wert in einem Array?

Bsp. dazu:

<script type="application/javascript"> var punkte = []; var einWert = 2; punkte.push(einWert); einWert += 1; punkte.push(einWert);

for (var i=0; i<punkte.length; i++) { document.write("Array[" + i + "] = " + punkte[i] + "; "); } </script>

...dieses Script retourniert: Array[0] = 2; Array[1] = 3;

Nun ist mir durchaus klar, warum geschieht, was geschieht.

  • Wie führe ich aber alle 'push'-Werte in EINEM Element des Arrays zusammen, sodass die Ausgabe (trotz mehrerer Updatevorgänge) gleich

Array[0] = 3;

ergibt?

Danke für euren Rat, Euer Uhudler.

  1. @@Uhudler

    • Wie führe ich aber alle 'push'-Werte in EINEM Element des Arrays zusammen

    Wozu brauchst du ein Array? Wenn du die Summe berechnen willst, dann in einer Variablen. (Zumal auch der Zugriff darauf schneller sein dürfte als auf ein Array-Element.)

    LLAP

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  2. Hallo,

    wie aktualisiere ich einen Wert in einem Array?

    Ich verstehe nicht, was du nicht verstehst.

    var einWert = 2;

    du weißt, wie man Werte zuweist.

    punkte.push(einWert);

    du weißt, wie man zusätzliche Werte in ein Array schiebt, ist aber offensichtlich für dich nicht relevant.

    einWert += 1;

    du weißt sogar, wie man Variablen inkrementiert.

    Array[0] = 3;

    Und du weißt, wie man auf ein Arrayelement zugreift.

    Danke für euren Rat,

    ich muss raten, was du für ein Problem hast...
    aber ich komme nicht drauf.

    Gruß
    Kalk

    1. Hi,

      einWert += 1;

      du weißt sogar, wie man Variablen inkrementiert.

      mit einWert++ ;-)

      cu,
      Andreas a/k/a MudGuard

  3. ich muss raten, was du für ein Problem hast...
    aber ich komme nicht drauf.

    Wie führe ich aber alle 'push'-Werte in EINEM Element des Arrays zusammen, sodass die Ausgabe (trotz mehrerer Updatevorgänge) gleich Array[0] = 3; ergibt?

    Wer lesen kann, ist im Vorteil.

    Wozu brauchst du ein Array? Wenn du die Summe berechnen willst, dann in einer Variablen. (Zumal auch der Zugriff darauf schneller sein dürfte als auf ein Array-Element.)

    Vielen Dank für den Hinweis, dass man Variablen tatsächlich zusammenzählen kann!


    Wollte hier eigentlich niemanden mit zu vielen Details nerven, aber ist offensichtlich nicht anders möglich...

    Hintergrund:

    Inhalte werden per Zufallsprinzip in eine PHP-Datei geladen. Kann also Inhalt 42 oder aber auch Inhalt 666 sein. Nun nehmen wir an, Inhalt 42 weist einen Wert von 2 auf. Dieser Wert kann zusätzlich per [ebenfalls zufällig geladenem] button verändert werden. Zu guter letzt müssen die Inhalte auf richtig oder falsch ausgewertet werden [wobei die Parent-Datei ja nicht "weiß", bzw. auch nicht zu wissen braucht, welche Inhalte eigentlich geladen wurden]; - weist Inhalt 42 also einen Wert von 3 auf, so wäre Inhalt 42 als richtig, andernfalls als falsch zu bewerten.

    ...es wäre also DURCHAUS praktisch, den Ausgangswert von Inhalt 42 in einem Array-Element abzuspeichern und dieses eine Element auch mit den buttons [die den Wert ja modifizieren können] ansprechen zu können.

    Wäre der Wert von Inhalt 42 dann das erste ins Array geladene Element, wäre eine Endauswertung à la if array[0] == 3 (...) dann kein Problem mehr.

    Vielen Dank für ehrlich gemeinte Hilfestellungen! LG, Uhu.

    1. Hallo,

      Wollte hier eigentlich niemanden mit zu vielen Details nerven, aber ist offensichtlich nicht anders möglich...

      doch, wahrscheinlich schon, aber du hast ungünstig angefangen zu fragen.

      Oft ist es nämlich besser, die eigentliche Aufgabenstellung zu beschreiben. Du aber hast die ersten Detailschritte rausgepickt, die du für den Lösungsansatz gewählt hast. Ohne Kontext sehen die aber recht konfus und unlogisch aus.

      Inhalte werden per Zufallsprinzip in eine PHP-Datei geladen. Kann also Inhalt 42 oder aber auch Inhalt 666 sein. Nun nehmen wir an, Inhalt 42 weist einen Wert von 2 auf. Dieser Wert kann zusätzlich per [ebenfalls zufällig geladenem] button verändert werden. Zu guter letzt müssen die Inhalte auf richtig oder falsch ausgewertet werden [wobei die Parent-Datei ja nicht "weiß", bzw. auch nicht zu wissen braucht, welche Inhalte eigentlich geladen wurden]; - weist Inhalt 42 also einen Wert von 3 auf, so wäre Inhalt 42 als richtig, andernfalls als falsch zu bewerten.

      Das klingt, als ginge es um eine Art Quiz mit einer Serie von zufällig ausgewählten Fragen, bei denen jeweils genau eine Antwort richtig ist. Es wäre also vorteilhaft, den Index der Frage (42 in deinem Beispiel) und die zugehörige richtige Antwort in einer Struktur zusammenzufassen, etwa ein Array mit zwei Elementen oder ein Objekt, und von dieser Grundstruktur wiederum ein Array mit beliebig vielen Einträgen anzulegen.

      Nicht elegant, aber auch möglich wäre ein einziges, flaches Array, das abwechselnd Frage und Antwort enthält, so dass man später mit A[2*n+0] den Index zur Frage erhält und mit A[2*n+1] die dazu passende Antwort.

      Ach so, und vergiss nicht: Javascript läuft clientseitig. Der Nutzer kann also jederzeit im Quelltext nachsehen, welche Eingabe das Programm an welcher Stelle erwartet. Für eine Spielerei ist das also ganz okay, für eine ernsthafte Lernerfolgskontrolle oder ein Preisausschreiben eher nicht.

      So, jetzt bist du wieder dran.
       Martin