假设我有一个像这样的空对象:
var object = {};
如何使用变量添加具有嵌套对象的属性? E.g:
<span id='obj1'>person</span>
<span id='nestedObj'>name</span>
var obj1 = $( '#obj1' ).text();
var nestedObj = $( '#nestedObj' ).text();
function (obj1, nestedObj) {
//Trying to simulate object.person.nestedObj
object[obj1][nestedObj] = 'someone';
}
答案 0 :(得分:1)
您需要首先确保对象[obj1]有效:
object[obj1] = object[obj1] || {};
object[obj1][nestedObj] = 'someone'
这基本上说“如果对象[obj1]”未定义,则将其设为对象,否则将其分配给自身。
答案 1 :(得分:0)
object[obj1]
必须初始化:
var obj1 = $( '#obj1' ).text();
var nestedObj = $( '#nestedObj' ).text();
if(!object[obj1]) {
object[obj1] = {};
}
object[obj1][nestedObj] = 'someone';
答案 2 :(得分:0)
function O(key, val) {
var o = {};
o[key] = val;
return o;
}
function f(obj1, nestedObj) {
$.extend(true, object, O(obj1, O(nestedObj, 'someone')));
}