我正在构建一个具有array类型属性的对象数组:
这里有一些简化的代码:
var _data = [];
for(var i=0;i<10;i++) {
var element = {
id: i,
answers: []
};
for(var j=0;j<3;j++) {
var answer = {
id: j,
description: ''
};
element.answers.push(answer);
}
_data.push(element);
}
在两个cicle的末尾,数组_data有10个元素,但每个元素的属性为空(我希望每个元素有3个项目)。 为什么会这样?似乎推送不会推动整个对象,而只推动“第一级属性”。 感谢
答案 0 :(得分:1)
在Firefox 8中运行代码会生成以下_data数组:
_data:
[{id:0, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]},
{id:1, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]},
{id:2, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]},
{id:3, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]},
{id:4, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]},
{id:5, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]},
{id:6, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]},
{id:7, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]},
{id:8, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]},
{id:9, answers:[{id:0, description:""}, {id:1, description:""}, {id:2, description:""}]}]
也许你有一个拼写错误,因为它是answers
而不是answer