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-Key: 136551

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

Printed on: April 24, 2024 at 15:04 o'clock

Member: dog
dog Feb 22, 2010 at 10:24:11 (UTC)
Goto Top
Ich kenne mich mit JS zwar nicht besonder aus, aber wie wäre es mit:
var oObject = eval('{' + sKey + ' : ' + sValue'}');  
Member: nxclass
nxclass Feb 22, 2010 at 10:39:45 (UTC)
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.
Member: nxclass
nxclass Feb 23, 2010 at 08:03:26 (UTC)
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.