的Javascript推复杂的对象

问题描述:

我建立具有数组类型的属性对象的数组:的Javascript推复杂的对象

这里有一些简单的代码:

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

你的代码适用于我,你确定它不是一个显示问题?尝试检查'_data.toSource()'的输出。 – 2011-12-21 14:56:14

运行代码的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:""}]}] 

也许你有一个错字,因为它是answersanswer

+0

抱歉,愚蠢的答案。 – ema 2011-12-21 15:08:36