在项目开发中我们需要向意数组中添加对象:首先想到的是利用数组的api,----push
demo:
var ar = [1,2,3]
var ar2 = [11,22,33]
var obj = { a : 0, b : 0 }
var myar = [];
for(var i = 0; i < 3; i ++)
{
obj.a = ar[i];
obj.b = ar2[i];
myar.push(obj)
}
alert(myar[0].a); //3
alert(myar[1].a); //3
alert(myar[2].a); //3
为什么都是3呢??
分析:
因为obj这个对象实在for循环外面生成的,在每一的循环时,我们都是利用的同一个对象,因此会进行覆盖。
正确的做法:
var
ar = [1,2,3]
var myar = [];
for(var i in ar)
{
obj2 = {a: ar[i], b:ar[i]}; //每次的循环都会新建一个对象
myar.push(obj2);
}
alert(myar[0].a) ;//1
alert(myar[1].a) ;//2
进一步的用法:
s.sure_user_list.forEach(function (item) {//遍历下一步审批人列表,添加新的内容
lastSort = lastSort + 1;//排序加1
;
/*
Idea_approval[Idea_approval.length-1]=[{
approval_company_user_id: item.id,
ideasid: Idea_approval[c_approval_i].approval.ideasid,
sort: lastSort
}];
*/
var obj={
approval_company_user_id: item.id,
ideasid: Idea_approval[c_approval_i].approval.ideasid,
sort: lastSort
}
Idea_approval.push({approval:obj});
});