nxclass
Goto Top

Variable Namen für Eigenschaften eines Objektes

Hallo,
Wie Ihr an dem unteren Beispiel erkennen könnt, versuche ich ein Objekt zu erzeugen, welches variable Eigenschaften (und Werte) besitzen soll.
var sKey = 'name';  
var sValue = 'wert';  
var oObject = {  sKey : sValue };
... leider funktioniert das nicht, da nicht der Inhalt von sKey als Name der Eigenschaft sondern 'sKey' selbst benutzt wird.

Gibt es eine Möglichkeit für das was ich versuche ?

vielen Dank

Content-ID: 136551

Url: https://administrator.de/contentid/136551

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

dog
dog 22.02.2010 um 11:24:11 Uhr
Goto Top
Ich kenne mich mit JS zwar nicht besonder aus, aber wie wäre es mit:
var oObject = eval('{' + sKey + ' : ' + sValue'}');  
nxclass
nxclass 22.02.2010 um 11:39:45 Uhr
Goto Top
Wow - habe mal wieder den Wald vor lauter Bäumen nicht gesehen - sollte natürlich funktionieren.

Da mir allerdings dieser Eval Befehl nicht so recht geheuer ist, würde ich mich noch über andere Vorschläge freuen.
nxclass
nxclass 23.02.2010 um 09:03:26 Uhr
Goto Top
var sKey = 'name';  
var sValue = 'wert';  

eval('var oObject = { '+sKey+': "'+sValue+'"};');  

alert (oObject);
... so würde es funktionieren. (die Variablen müssten dann noch escaped werden - über die Möglichkeit von Injections möchte ich am liebsten gar nicht nachdenken)

EDIT:
da es scheinbar keine andere Möglichkeit gibt - werde ich wohl
var oObject = {
  name: sKey,
  value: sValue
}
benutzen.

EDIT:
var oObject = new Object();
oObject[sKey] = sValue;
... geht natürlich auch - sind dann aber 2 Anweisungen.