Frage

In PHP I can mess around with variable variables and I'm wondering if I can do the same in JavaScript.

I want to create a new object with a property which's name is based on the value of a variable.

if ( obj.name === 'foo' ) {
    var data = { foo: value };
}
if ( obj.name === 'bar' ) {
    var data = { bar: value };
}

Is there a shorter way of doing this without using eval()? Something like:

var data = { obj.name: value };
War es hilfreich?

Lösung

Try this:

var data = {};
data[obj.name] = value;

You can read some more about js objects Here.

Andere Tipps

Objects in JavaScript are simply hash maps. You can access members by indexing with their names. For your problem you can use

var data = {};
data[obj.name] = value;

I've used this to implement a dynamic dispatch mechanism for arithmetic operations on different numerical types as described here.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top