是否可以使用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是的!这正是我正在寻找的功能。能够很好地设置太深,但这对我的用途来说已经足够了。我很想看看其他方法,但感谢您的帮助! –