js动态产生对象push进数组,发现数组所有元素(element or object)一样

来源:互联网 发布:知乎回答怎么加图片 编辑:程序博客网 时间:2024/06/06 02:40

原因:对象是同一个对象,动态创建对象时,不断对对象赋值,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);

演示结果:
这里写图片描述

原创粉丝点击