gelöst Variable Namen für Eigenschaften eines Objektes

Mitglied: nxclass

nxclass (Level 2)

22.02.2010 um 11:16 Uhr, 3812 Aufrufe, 3 Kommentare

Hallo,
Wie Ihr an dem unteren Beispiel erkennen könnt, versuche ich ein Objekt zu erzeugen, welches variable Eigenschaften (und Werte) besitzen soll.
01.
var sKey = 'name';
02.
var sValue = 'wert';
03.
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
Mitglied: dog
22.02.2010 um 11:24 Uhr
Ich kenne mich mit JS zwar nicht besonder aus, aber wie wäre es mit:
01.
var oObject = eval('{' + sKey + ' : ' + sValue'}');
Mitglied: nxclass
22.02.2010 um 11:39 Uhr
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.
Mitglied: nxclass
23.02.2010 um 09:03 Uhr
01.
var sKey = 'name';
02.
var sValue = 'wert';
03.

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

06.
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
01.
var oObject = {
02.
  name: sKey,
03.
  value: sValue
04.
}
benutzen.

EDIT:
01.
var oObject = new Object();
02.
oObject[sKey] = sValue;
... geht natürlich auch - sind dann aber 2 Anweisungen.
Titel: Variable Namen für Eigenschaften eines Objektes
Content-ID: 136551
Art des Inhalts: Frage
Ausgedruckt am: 21.09.2019 um 08:53:02 Uhr
URL: https://administrator.de/contentid/136551