错误代码
var data = [
{
text: 'Parent 2',
href: '#parent2',
},
{
text: 'Parent 3',
href: '#parent3',
},
{
text: 'Parent 4',
href: '#parent4',
},
{
text: 'Parent 5',
href: '#parent5',
}
];
var childData = {};
for(j=0;j<data.length;j++){
childData["text"] = data[j]["TEXT"];
childData["href"] = data[j]["HREF"];
childArray.push(childData);
}
原因:因为是在外面的定义的对象,所以每次childData的地址是一样的,childArray中保存的是childData的地址,当最后一次给childData赋值时,由于是同一个childData,所以最后一次给childData赋值给讲前三次的值给覆盖掉,其实第二次已经把第一次的值覆盖过了
正确的做法:每次循环都初始化一次,每次都是新的对象,对象指向的地址都不一样,数据就对了
for(j=0;j<data.length;j++){
var childData = {};
childData["text"] = data[j]["TEXT"];
childData["href"] = data[j]["HREF"];
childData["icon"] = data[j]["ICON"];
childArray.push(childData);
}