最近在做的一个项目,需要循环push 一个对象,大致如下代码
if(fileUrls){
var fileList ;
var fileList=[];
var filesName=[];
var par={
name: '',
url:'',
lastModifiedDate:''
};
for(var i=0; i<fileUrls.length; i++){
filesName[i]=fileUrls[i].fileUrl.substr(fileUrls[i].fileUrl.lastIndexOf('/')+1);
par.name=filesName[i];
par.url=fileUrls[i].fileUrl;
par.lastModifiedDate=new Date();
fileList.push(par);
}
$('#fileAdd').next().remove();
fileChoose.initInserFile(fileList);
}
这种最后结果输出的都是最后一次循环的值,
这是调整过后的
if(fileUrls){
var fileList ;
var fileList=[];
var filesName=[];
for(var i=0; i<fileUrls.length; i++){
var par={
name: '',
url:'',
lastModifiedDate:''
};
filesName[i]=fileUrls[i].fileUrl.substr(fileUrls[i].fileUrl.lastIndexOf('/')+1);
par.name=filesName[i];
par.url=fileUrls[i].fileUrl;
par.lastModifiedDate=new Date();
fileList.push(par);
}
$('#fileAdd').next().remove();
fileChoose.initInserFile(fileList);
}
原因:第一段错误就是每次其实都是给同一个对象赋值,第二个是每次都新建一个对象并且赋值。
涉及 基本类型 、引用类型