Javascript Can';不要在对象内部添加对象

Javascript Can';不要在对象内部添加对象,javascript,Javascript,我正在寻找一些数据来创建对象列表,我想在父对象中添加一些对象。虽然创建了内部对象,但没有一个属性是用它创建的 这就是我想做的: for(var i in data){ if(parseInt(data[i].prevr) == 0){ nodes[data[i].id] = new Object(); nodes[data[i].id].name = data[i].name; nodes[data[i].id].child = new O

我正在寻找一些数据来创建对象列表,我想在父对象中添加一些对象。虽然创建了内部对象,但没有一个属性是用它创建的

这就是我想做的:

for(var i in data){
    if(parseInt(data[i].prevr) == 0){
        nodes[data[i].id] = new Object();
        nodes[data[i].id].name = data[i].name;
        nodes[data[i].id].child = new Object();
    }else if(parseInt(data[i].prevr) > 0){  
        console.log('test');
        nodes[data[i].prevr].child[data[i].id] = new Object();
        nodes[data[i].prevr].child[data[i].id].name = data[i].name; 
    }
 }
console.log(JSON.stringify(nodes[5]));
结果显示在console.log中:

test
{"name":"Test2","child":{}} 
为什么它不为子对象创建数据

我的变量
数据
包含:

[{"id":"3","name":"Test2","prevr":"0"}
{"id":"4","name":"Test3","prevr":"3"}]

原始的
数据是什么?@ExplosionPills让我编辑我的问题,我会把它添加到:)你的代码如果(!data.hasOwnProperty(i))继续,
会发生什么如何解决此问题?这并不是我所更改的全部内容…但在使用
for…in
循环与数组时,应该使用它,否则原型数组方法将作为可能的值包含在对象的属性中
I
for(var i in data){
    if ( !data.hasOwnProperty(i) ) continue;

    if ( parseInt(data[i].prevr, 10) == 0 ) {
        nodes[data[i].id] = { name: data[i].name, child : {} };
    }
    else if ( parseInt(data[i].prevr, 10) > 0 ) {  
        console.log('test');
        nodes[data[i].prevr].child[data[i].id] = { name: data[i].name };
    }
 }
console.log(JSON.stringify(nodes[5]));