我会尽量保持简短和甜蜜
我有一个对象,里面有一个对象列表,如下所示:
myObj=
{"first" : {"test1" : [1,2,3]}
我得到一个新对象,我需要“推”(不是字面意义上)到这里的值对象
所以,如果我得到了:
{"test1" : [3,4,5]}
应该变成
{"first" : {"test1" : [3,4,5]}
如果它有相同的密钥,如果它是一个新密钥,我只想按这样推送它
given
{"blarg" : [6, 8, 19]}
会变成
{"first" : {"test1" : [1,2,3], "blarg" : [6, 8, 19]};
最初我做的事情就像
var key = "blarg",
vals = [6, 8, 19],
where = "first",
temp = {};
temp[key] = vals;
myObj[where] = temp;
然而,这只是覆盖当前对象而不处理各种场景。谢谢!
答案 0 :(得分:0)
var key = "blarg";
var vals = [6, 8, 19];
var where = "first";
var temp = myObj[where] || {};
temp[key] = vals;
// In case we did a first-time init of the 'where' key.
myObj[where] = temp;
我认为你所缺少的是而不是当其中一个键(即“第一个”)已经存在时创建一个新对象。