【问题标题】:Building an object dynamically in Javascript在 Javascript 中动态构建对象
【发布时间】:2015-12-07 11:52:10
【问题描述】:

我有一个对象定义为:

outobject = [];

并且在用数据构建对象之后,这个对象有如下四列十项:

id: 1
name : "abc"
date: "11/1/2012"
type : "normal"

id : 2
name : "def"
date : "11/2/2012"
type : "normal"

等等。

现在我正在遍历对象并进行计算,最终我想在对象中再添加一列,如下所示:

for (var i = 0; i < outobject.length; i++) {

//do some calculation, I got output as "Brazil" for this particular instance of outobject[i]

outobject[i].push({
                        locationname: "Brazil"
                    });

}

此时我遇到了异常:

outobject[i].push({
                        locationname: "Brazil"
                    });

是否可以添加这样的数据,我正在做这个“位置”,因为它必须动态计算

【问题讨论】:

  • 应该是这样的:outobject[i].locationname = "brazil"; Push 用于向数组添加项目。 outobject[i] 不是数组,而是对象。
  • outobject = []; — 这是一个数组
  • “在用数据构建对象之后”——你在做什么……怎么样?
  • “我遇到了一个异常”——你遇到了什么异常?
  • 我很高兴下面的答案有所帮助。为了未来读者的利益,使用上面要求的相关详细信息编辑问题仍然很有用。

标签: javascript arrays javascript-objects dom-events


【解决方案1】:

我假设当你说你已经填充了对象(它是一个数组)时,你做了这样的事情:

outobject[0] = {
    id: 1,
    name : "abc",
    date: "11/1/2012",
    type : "normal"
};

outobject.push({
    id: 1,
    name : "abc",
    date: "11/1/2012",
    type : "normal"
});

...其他三个条目以此类推。

这个:

outobject[i].push({
    locationname: "Brazil"
})

...尝试将条目 i 处的对象视为数组,但您的问题中没有任何内容表明它是数组。

如果您的目标是添加第五项:

outobject.push({
    locationname: "Brazil"
});

如果您的目标是添加locationname 属性到outobject[i] 的对象,那么:

outobject[i].locationname = "Brazil";

【讨论】:

    猜你喜欢
    • 2015-11-05
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2021-07-30
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多