assoziatives Array Key aus Variable
mordur
- javascript
moins,
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;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.
Bert ist mueller
Struppi.