Hur man ställer in värdena för ett Javascript-objekt dynamiskt?


Det är svårt att förklara fallet med ord, låt mig ge ett exempel:

var myObj = {
    'name': 'Umut',
    'age' : 34
};

var prop = 'name';
var value = 'Onur';

myObj[name] = value; // This does not work

eval('myObj.' + name) = value;   //Bad coding ;)

Hur kan jag sätta en variabel egenskap med variabelt värde i ett JavaScript-objekt?

Svar #1

myObj[prop] = value;

Det borde fungera. Du blandade ihop namnet på variabeln och dess värde. Men att indexera ett objekt med strängar för att komma åt dess egenskaper fungerar fint i JavaScript.

Svar #2

myObj.name=value

eller

myObj['name']=value     (Quotes are required)

Båda dessa är utbytbara.

Redigera: Jag antar att du menade myObj[prop]=value, istället för myObj[name]=value. Andra syntaxen fungerar bra: http://jsfiddle.net/waitinforatrain/dNjvb/1/

Relaterade artiklar