假设我有一个字符串表示对象中的键。这里有一个例子:使用字符串作为键的对象设置值
var obj = {
test: 12,
high: {
sky: {
val: 14
}
},
low: [1, 2, 3]
},
keys = 'high.sky.val';
所以,我想设置的obj.high.sky.val
值(与'high.sky.val'
在一个字符为)。
我知道如何阅读的价值(虽然这未必是最好的方式):
var keyPieces = keys.split('.'), value = obj;
keyPieces.forEach(function(x){
value = value[x];
});
console.log(value); // 14
我无法弄清楚如何设置obj.high.sky.val
(不使用eval
)。
如何设置属性的值,如果该键是一个字符串?
我如何告诉它什么对象使用? – 2012-02-17 23:08:13
挂起,编辑。我假设你想从全局对象开始解决......现在你去了,现在它可以有一个目标对象(否则它默认为'window')。如果你不想'window'默认,只需删除“|| window”。 – 2012-02-17 23:11:24
@火箭,为简单起见编辑了一下。 – 2012-02-17 23:19:03