我正在尝试将元素推送到数组上。
修改
task.prototype.goTest=function(){
for(a = 0; a < test.length; a++) {
if(this.testnumber != test[a].number) {
//it will only loop 8 times under conditional statement
group = {
title: test[a].Title,
ID: test[a].ID,
contents: []
};
this.company.push(group);
this.testnumber = test.number[a];
}
//outside of if conditional statement.. it will loop 15 times
//i want every test[a].conetents get pushed to group.contents array.
//this.company is the final variable I need for this function...
group.contents.push(test[a].contents);
}
console.log(this.company);
}
但是,当我这样做时
console.log(this.company);
我看到每个group.contents
数组中只有1个元素的8个元素。理想情况是在group.contents
数组中有8个元素,包含2到3个元素。
这是指函数中的对象。 知道如何解决我的问题吗?
答案 0 :(得分:1)
您正在为每个循环创建一个新的group
对象,因此对group.contents
的引用只是当前的一个,它不引用之前创建的group
对象。
因此,每次调用group.contents.push
时,您只是推动在该循环迭代中创建的对象。