假設我有一個字符串表示對象中的鍵。這裏有一個例子:使用字符串作爲鍵的對象設置值
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