一、错误代码
var obj = {a:123,b:234,c:345};
var array= [];
var resultObj = {};
for(var i = 0;i<obj.length;i++){
resultObj.name = obj[i];
array.push(resultObj);
}
得到的结果:345,345,345;而不是123,234,345;
二、优化处理
var obj = {a:123,b:234,c:345};
var array = [];
for(var i = 0;i<obj.length;i++){
var resultObj = {};
resultObj.name = obj[i];
array.push(resultObj);
};
把resultObj定义在for循环中,得到的结果就是123,234,345;
原因:把对象定义在循环中,每次循环resultObj都会指向不同的地址,每次都是一个新对象。