我有一个大对象,其中嵌套了多个对象。我有一个函数,它将获取其中一个对象的键,我想向被调用的子对象添加一个新属性。像https://jsfiddle.net/cf15xdfm/2/
这样的东西var my_object = {
object1: {
key: 'value',
key2: 'value2'
},
object2: {
key: 'othervalue',
key2: 'another'
}
}
function doSomething(obj_key) {
// add a new property to the object
my_object.obj_key.new_prop = 'this_new_prop';
}
doSomething('object1');
console.dir(my_object);
如何在obj_key
方法中引用变量doSomething
,以便我可以更改所需的对象?
答案 0 :(得分:2)
利用brackets notation
访问dynamic keys
var my_object = {
object1: {
key: 'value',
key2: 'value2'
},
object2: {
key: 'othervalue',
key2: 'another'
}
}
function doSomething(obj_key) {
// add a new property to the object
my_object[obj_key].new_prop = 'this_new_prop'; // using bracket notation here
}
doSomething('object1');
console.dir(my_object);
答案 1 :(得分:0)
您可以使用:
my_object[obj_key].new_prop='this_new_prop';
答案 2 :(得分:0)
您可以将属性称为字符串,如下所示:
DECLARE @table_name varchar(max)
SELECT @table_name = MIN(tablenames) FROM tablelist;
WHILE @table_name IS NOT NULL
BEGIN
EXEC('SELECT * FROM ' + @table_name)
SELECT @table_name = MIN(tablenames) FROM tablelist WHERE tablenames > @table_name;
END;
所以你应该这样做:
obj['property_name']
编辑:抱歉没有看到答案已经存在