Sehr einfaches Script: Bitte um Erklärung

aenima22

New member
Hallo zusammen,

Ich bin leider ziemlich Anfänger in Javascript. Das Problem ist, dass ich mir aktuell relativ viel darüber durchlese, aber die einzige Möglichkeit, wirklich zu lernen, ist sich Übungsaufgaben auszudenken.
Frustrierend wirds allerdings, wenn man schon relativ früh scheitert und nicht wirklich versteht, weshalb. Mir ist das an dieser Stelle passiert und ich fürchte, ich komme nicht weiter / lerne nicht dazu, wenn ich hier nicht meine Anfängerfrage abladen kann und eine Erklärung dazu bekomme.

Ganz simpel: Ich möchte ein Array (zahlen) mit Zahlen (von 0 bis 999) füllen. Das versuche ich mit einer For-Schleife zu bewerkstelligen. Das zweite Array (MyArray) dient nur als Hilfsmittel für die for-Schleife, vielleicht braucht man das gar nicht. Jedenfalls möchte ich mir dann über console.log das Array ausgeben lassen, um zu überprüfen, ob es nun mit den Zahlen gefüllt ist. ... und bereits dort scheitert es, die Konsole hat sich offensichtlich mit 1000 Werten gefüllt, aber diese sind alle "undefined". Warum verstehe ich nicht, da ich das Array als globale Variable angelegt und eindeutig als Array typisiert habe (die Typisierung sollte nichtmal notwendig sein, oder?).

So sieht das aus:
Code:
<script>
        let zahlen = [];
        let MyArray = [];
        let i = 0;

          for (let i = 0; i < 1000; i++) {
            zahlen.push(MyArray[i]);
          }
          console.log(zahlen);
 </script>


Und das sagt die Konsole:
Array [ undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 990 weitere… ]

Vielen Dank schonmal für (hoffentlich) hilfreiche Beiträge.
 
Zuletzt bearbeitet von einem Moderator:
Das zweite Array (MyArray) dient nur als Hilfsmittel für die for-Schleife, vielleicht braucht man das gar nicht.
Nicht nur braucht man das nicht, es erzeugt auch dein Problem.

Eigentlich keine gute Idee, eigentlich solltest du auch schon bei Übungen darauf achten, diese zu vermeiden.

eindeutig als Array typisiert
Keine Ahnung, was du damit meinst. In JS gibt es keine typisierten Variablen.

die Typisierung sollte nichtmal notwendig sein, oder?
Wenn mit der Typisierung die Zuweisung eines leeren Arrays zu der Variablen meinst, dann ist das schon nötig. Du musst der Variable ja sagen, was sie ist.

zahlen.push(MyArray);

Und hier ist der Hund begraben. Wie kommst du auf dieses Konstrukt? MyArray hat doch auch gar keinen Inhalt und deswegen auch keine Einträge, die dann als undefined zurückgegeben werden. Es muss zahle.push(i); heißen.

PS: Verwende doch bitte das nächste Mal CODE-Tags. Dieses mal hab' ich diese für dich nachgetragen.
 
Zurück
Oben