b00kie: array mit Rückgabewert in Form eines arrays belegen - Hilfe!

Ich habe Probleme damit ein array in einer Funktion mit einem Rückgabewert einer anderen Funktion (Rückgabewert ist ein array!) zu belegen.
Ich versuche mal das Ganze hier beispielhaft darzustellen:

function a () {
  a_array = new Array(1,2,3,4)
  return a_array;
}

function b () {
  b_array = new Array(a());
  alert(b_array[0]);
  alert(b_array[1]);
}

Der alert von Funktion b würde nun dazu führen, dass durch den ersten alert nicht nur die "1" gemeldet wird, sondern "1,2,3,4".
Der zweite alert führt zu "undefined".

Der Hund liegt also offensichtlich darin begraben, dass das b_array komplett mit den Werten vom a_array EINEN platz belegt, aber nicht die Werte einzeln als tatsächliches array.
Ich konnte leider nicht herausfinden wie ich zum gewünschten ziel komme.
Das ziel sollte so sein, dass zuerst "1" ausgegeben wird und dann "2".

Danke schonmal im voraus ;)

PS. ja es ist mir bewusst das mein Beispiel so nicht wirklich Sinn macht, aber ich habe versucht das ganze schematisch darzustellen und bin noch Programmierfrischling :P

  1. Hallo,

    Der Hund liegt also offensichtlich darin begraben, dass das b_array komplett mit den Werten vom a_array EINEN platz belegt, aber nicht die Werte einzeln als tatsächliches array.

    Klar, die Funktion a gibt ein Ding in der Form eines Objektes zurück und dieses Ding belegt nur einen Platz im b_array. Du willst b_array nicht mit einem einzelnen anderem Array befüllen, sondern a_array an b_array dranhängen. Dazu haben Arrays in JS die Methode concat. Also statt jenem:

    b_array = new Array(a());

    dieses:

    ~~~javascript b_array = [];      // verbreitetere Schreibweise für neue Arrays
      b_array.concat(a());

      
      
    Tim
    
  2. Hallöchen,

    function a () {
      a_array = new Array(1,2,3,4)
      return a_array;
    }

    Der Rückgabewert von function a ist ein Array. Damit sollte dies funktionieren (2. Zeile geändert):

    function b () {

    b_array = a();

    alert(b_array[0]);
      alert(b_array[1]);
    }

    MfG
    vaudi

  3. Vielen Dank euch beiden :) - jetzt gehts.
    War mal wieder so einfach, dass ich nicht drauf gekommen bin^^