assoziatives Array Key aus Variable
    
mordur
    
    
      
    
  - javascript
 nicht angemeldet
 nicht angemeldetmoins,
ein assoziatives Array kann man ja so bilden:
var arr =new Array();  
arr[0]= new Array();  
arr[0] = { "KUNDE" : "Hans" };  
alert(arr[0]["KUNDE"]);  
ich erhalte: "Hans".
jetzt kommt der Schlüssel aber aus einem anderen Array (z.b. key[1] = "KUNDE" ).
Wenn ich also folgendes mache:
var arr =new Array();  
arr[0]= new Array();  
arr[0] = { key[1] : "Hans" };  
alert (Arr[0]["KUNDE"]);  
  
ich erhalte: "undefined";
wie bekomme ich sowas hin, das Variableninhalte als Keys akzeptiert werden
@@mordur:
nuqneH
wie bekomme ich sowas hin, das Variableninhalte als Keys akzeptiert werden
arr[0][key[1]] = "Hans";
Qapla'
ein assoziatives Array kann man ja so bilden:
kann man, ausser das es keine Array ist, da es diesen Datentyp in JS nicht gibt. Aber so einen ähnlichen, der nennt sich Objekt.
var arr =new Array();
arr[0]= new Array();
Deshalb ist diese Zeile überflüssig.
arr[0] = { "KUNDE" : "Hans" };
Zumal du das Array hier mit einem Objekt einfach überschreibst.
jetzt kommt der Schlüssel aber aus einem anderen Array (z.b. key[1] = "KUNDE" ).
Wenn ich also folgendes mache:
Das geht so natürlich nicht, da der Schlüssel immer ein String ist, du kannst das obige also auch so schreiben:
[code lang=javascript]arr[0] = { KUNDE : "Hans" };
  
Um als Schlüssel Variabeln zu benutzen, musst die direkte Schreibweise verwenden.  
  
`arr[0][key[1]] = "Hans";`{:.language-javascript}  
  
Struppi.
ok, mein code ist jetzt so:
  
// global array  
var arr = new Array();  
function getData(wert) {  
   var Werte = new Array();  
   Werte[0] = "handwerker";  
   Werte[1] = "mueller";  
   // etc. pp nur Bsp;  
  
  
   var kunden  = wert.split("#");  
   for(j=0;j<kunden.length;j++) {  
  
     var x = kunden[j].split(";");  
     arr[x[0]] = new Array();  
     var key = Werte[x[2]];  
     arr[x[0]][key]=x[1]; 	  
    }  
}  
  
  
  
function output(id){  
  
  alert (arr[id]['handwerker']);  
  
}  
Beim Laden der Webseite wird ein String an getData übergeben, der sieht so aus: 0;Hans;1#1;klaus;0#2;bert;1 usw.
Beim Klicken auf einen Button wird output aufgerufen und zum Beispiel die ID 2 übergeben.
Ich müsste als Ergebnis also "Bert" erhalten. Da steht allerdings undefined.
Kann es sein, dass arr nicht als globales Array behandelt wird?
var x = kunden[j].split(";");
arr[x[0]] = new Array();
Das ist kein Array!
var key = Werte[x[2]];
Beim Laden der Webseite wird ein String an getData übergeben, der sieht so aus:0;Hans;1#1;klaus;0#2;bert;1usw.Beim Klicken auf einen Button wird output aufgerufen und zum Beispiel die ID 2 übergeben.
Ich müsste als Ergebnis also "Bert" erhalten. Da steht allerdings undefined.
Bert ist mueller
Struppi.