是否可以使用JavaScript或jQuery通過將多個鍵傳遞給函數來設置(並獲取)某個多維對象的值?因爲這句話可能沒有什麼意義,這裏有我想要完成一個代碼示例:將遞歸鍵的名稱傳遞給對象引用
obj = {
a:{
a1:'a1',
a2:'a2'
},
b:'b1',
c:'c1'
};
function add_to_obj(key,value){
obj[key] = value;
}
預期的行爲:
console.log(obj.a[b]); // 'b1'
add_to_obj(b,'b1-new');
console.log(obj.a[b]); // 'b1-new'
我想做什麼:
function how_to_do_this(key1[key2], value){
obj[key1][key2] = value;
}
console.log(obj.a.a1); // 'a1'
how_to_do_this("a.a1", "a1-new");
console.log(obj.a.a1); // 'a1-new'
第二種方法是如何完成的?可以有多個「層」傳遞給參數,所以我試圖想辦法做到這一點。我最初雖然是通過一個分隔符,然後split()
它,但似乎凌亂。
有什麼建議嗎?
是在我你要找的行爲設定值?目前還不清楚你是否只想設置現有的深層屬性或者創建它們。 –
在你的函數中使用[arguments](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments)。然後你可以傳遞類似'how_to_do_this(「a1-new」,「a」,「a1」);' –
@EnjoysTurtles是的!這正是我正在尋找的功能。能夠很好地設置太深,但這對我的用途來說已經足夠了。我很想看看其他方法,但感謝您的幫助! –