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]));