在項目開發中我們需要向意數組中添加對象:首先想到的是利用數組的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});
});