TigerDE2: Array - Übergebener "Parameter" - Wie geht das genau?

Hallo!
Ich habe eine Frage zu Arrays:
[Naja, eigentlich sind's mehr, aber egal... ;o)]
In SELFHTML steht:

Schema 2 / Beispiel 2:
Objektname = new Array(Zahl);
MeineFrauen = new Array(100);
[...]
Erläuterung:
Eine Objektinstanz von Array speichern Sie in einem selbst vergebenen Objektnamen. Hinter dem Namen folgt ein Istgleichzeichen. Dahinter folgt das reservierte Wort new und der Aufruf der Objektfunktion Array().
[...]
Benutzen Sie Schema 2, wenn Sie zum Zeitpunkt der Definition bereits wissen, wie viele Elemente in dem Variablenvektor gespeichert werden sollen. Die Anzahl können Sie der Objektfunktion als Parameter übergeben.
<<
Wenn ich nun new Array(5); schreibe, werden dann die Stellen bis zum Index "5" vordefiniert (also 0,1,2,3,4,5) oder 5 Speicherplätze (also 0,1,2,3,4)?
Wenn ich nun mehr oder weniger "reservierte Speicherplätze" während des Programmablaufs benutze, passiert da was? Gibt das u.U. Fehler (wenn ich nur 0,1,2 oder 0,1,2,3,4,5,6,7 belege)?
Und wozu ist das gut, so ein Array vorzugeben?
Spart das später Rechenzeit?
Oder reicht nicht einfach dashier:

MeineFrauen = new Array(); << nicht vollkommen?

Danke für jeden Hinweis...
gruß
Christian

  1. Hallo!

    moinsen
    [erläuterung von selfhtml entfern, stattdessen nhemen wir dies: http://selfhtml.teamone.de/javascript/objekte/array.htm

    <<
    Wenn ich nun new Array(5); schreibe, werden dann die Stellen bis zum Index "5" vordefiniert (also 0,1,2,3,4,5) oder 5 Speicherplätze (also 0,1,2,3,4)?

    die indizierung des arrays erfolgt von 0 bis 4, also genau 5 variablen werden darin indiziert.
    die variablen _sind_ leer.

    Wenn ich nun mehr oder weniger "reservierte Speicherplätze" während des Programmablaufs benutze, passiert da was? Gibt das u.U. Fehler (wenn ich nur 0,1,2 oder 0,1,2,3,4,5,6,7 belege)?

    es "passiert" nur was, wenn du den array explizit als 5-fach angibts und du sprichst etwa array[5] an, denn dann ist dieser nicht vorhanden und du erhält "undefined" zurück.
    wenn du dann an eienen solche array weitere indizes anhägen möchtest, so musst du dafür die funktion join(); verwenden.

    Und wozu ist das gut, so ein Array vorzugeben?
    Spart das später Rechenzeit?

    kommt auf die aufgabe an.
    so sind array gut geeignet, wenn du schleifen via counter durchläufst. in dem fall kannst du einfach (und: elegant!) den array-index als counter nehmen!

    Oder reicht nicht einfach das hier:

    MeineFrauen = new Array(); << nicht vollkommen?

    doch, das reicht, sofern du nicht weißt, was draus wird ;)

    Danke für jeden Hinweis...
    gruß
    Christian

    Fabian

  2. Hallo!
    Ich habe eine Frage zu Arrays:
    [Naja, eigentlich sind's mehr, aber egal... ;o)]
    In SELFHTML steht:

    Schema 2 / Beispiel 2:
    Objektname = new Array(Zahl);
    MeineFrauen = new Array(100);
    [...]
    Erläuterung:
    Eine Objektinstanz von Array speichern Sie in einem selbst vergebenen Objektnamen. Hinter dem Namen folgt ein Istgleichzeichen. Dahinter folgt das reservierte Wort new und der Aufruf der Objektfunktion Array().
    [...]
    Benutzen Sie Schema 2, wenn Sie zum Zeitpunkt der Definition bereits wissen, wie viele Elemente in dem Variablenvektor gespeichert werden sollen. Die Anzahl können Sie der Objektfunktion als Parameter übergeben.
    <<
    Wenn ich nun new Array(5); schreibe, werden dann die Stellen bis zum Index "5" vordefiniert (also 0,1,2,3,4,5) oder 5 Speicherplätze (also 0,1,2,3,4)?

    mit new Array(5) erzeugst du einen Array mit 5 Feldern, wobei der höchste Index die 4 ist.

    Wenn ich nun mehr oder weniger "reservierte Speicherplätze" während des Programmablaufs benutze, passiert da was? Gibt das u.U. Fehler (wenn ich nur 0,1,2 oder 0,1,2,3,4,5,6,7 belege)?
    Und wozu ist das gut, so ein Array vorzugeben?
    Spart das später Rechenzeit?
    Oder reicht nicht einfach dashier:

    MeineFrauen = new Array(); << nicht vollkommen?
    Danke für jeden Hinweis...
    gruß
    Christian