将对象列表与其他对象javascript合并

时间:2015-03-11 19:52:16

标签: javascript

我会尽量保持简短和甜蜜

我有一个对象,里面有一个对象列表,如下所示:

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;

然而,这只是覆盖当前对象而不处理各种场景。谢谢!

1 个答案:

答案 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;

我认为你所缺少的是而不是当其中一个键(即“第一个”)已经存在时创建一个新对象。