【JS】js中定义了一个数组,每次往里面push对象,结果最后一次push的对象会覆盖之前push进去的值

gengboxb 522 0

现象:

var data = { a:'123', b: '456', c: '789'};
var dataArr = [];
var dataObj = {};
for(var i in data){
    dataObj.name= data[i];
    dataArr.push(dataObj);
}
console.log(dataArr);
// [{name: "789"},{name: "789"},{name: "789"}]

解决方法:把对象放到循环里面

var data = { a:'123', b: '456', c: '789'};
var dataArr = [];
for(var i in data){
var dataObj = {};//在里面定义对象
    dataObj.name= data[i];
    dataArr.push(dataObj);
}
console.log(dataArr);
// [{name: "123"},{name: "456"},{name: "789"}]

发表评论 取消回复
表情 图片 链接 代码

分享