如何在动态中将javascript对象添加到另一个对象

时间:2012-04-12 06:06:03

标签: javascript object add

假设我有几个javascript对象

{"type":"gotopage","target":"undefined"}
{"type":"press","target":"a"}
{"type":"rotate","target":"long"}

如何将此对象添加到另一个对象,如

config={}

我知道如果每个插入的对象都有一个id我可以添加为:

config["id"]={}

但在这种情况下,如何添加没有id的对象?

6 个答案:

答案 0 :(得分:11)

var obj1 = {"type":"gotopage","target":"undefined"};

var config = {};
config.obj1 = obj1;

您可以随时添加它们。

var obj1 = {"type":"gotopage","target":"undefined"};

var config = {};
config.obj1 = obj1;

var obj2 = {"key":"data"};
config.obj2 = obj2;

答案 1 :(得分:8)

我认为你正在混合对象和数组。对象具有命名键,数组具有数字键。您可以使用.push()轻松追加到数组:

var arr = [];
arr.push("something");

但是,对于配置对象,因为您的变量名称表明这不是很有用。您应该为您的选项使用有意义的名称,例如:

var config = {
    something: 'blah',
    foo: 'bar'
};

您还可以在对象中存储数组:

config.manyStuff = [];
for(...) {
    manyStuff.push(...);
}

答案 2 :(得分:2)

如果您拥有的这些数据属于同一类型,请改用数组:

var some_data = {"type":"gotopage","target":"undefined"}

var config = [];
var config.push(some_data); //and do this for the rest

您可以访问以下配置项:

var someVariable = config[index]; //where index is a number starting from 0

答案 3 :(得分:0)

我正在使用此实用程序功能:

module.exports.combine = function() {

  var rv = {};
  for (i = 0; i < arguments.length; i++) {
    for (thing in arguments[i]) {
        rv[thing]=arguments[i][thing];
    }
  }
  return rv;
}

具有相同名称的属性将被后面的参数

中的属性覆盖
var util = require('lib/util.js');
console.log(util.combine(
  {"1":"one","two":function(){;},
  {"four":{"four.5":"four.5-b"}, "5":"foo"}});

结果:

    { '1': 'one',
    '5': 'foo',
    two: [Function],
    four: { 'four.5': 'four.5-b' } }

答案 4 :(得分:0)

如果要添加对象,则可以使用使用扩展运算符轻松添加。

示例->

object1 = { property1: 1, property2: 2}
finalObject = [{...object1}]

finalObject = {... object1}

根据您的问题解决方案,请在此处使用数组对象

finalObject = [{... object1}]

object1 = { property1: 1, property2: 2}
    finalObject = [{...object1}]
    document.getElementById("demo").innerHTML = JSON.stringify(finalObject);
<div id = "demo"></div>

答案 5 :(得分:-2)

如果您希望在初始化期间添加它们,这可能会帮助您:

 var config = [
               {"type":"gotopage","target":"undefined"},
               {"type":"press","target":"a"},
               {"type":"rotate","target":"long"}
              ]