原因:对象是同一个对象,动态创建对象时,不断对对象赋值,push进数组,数组[obj,obj,obj],所有的obj值相同,因而导致数组中都是同一个对象
talk is cheap,show you the code
错误写法:
var obj = {
id: null,
name: '',
};
var str = [];
for (var i = 0; i < 5; i++) {
obj.id = i;
obj.name = 'name_' + i;
str.push(obj);
console.info(obj);
}
console.info(str);
演示结果:
正确写法:
var str = [];
for (var i = 0; i < 5; i++) {
var obj = {
id: i,
name: 'name_' + i,
};
str.push(obj);
console.info(obj);
}
console.info(str);
演示结果:
本文探讨了JavaScript编程中常见的数组操作误区,特别是在动态创建并填充数组元素时遇到的问题。通过对比错误与正确的代码实现方式,揭示了如何避免数组中的对象引用问题。
485

被折叠的 条评论
为什么被折叠?



