json数组生成遇到的坑
切入话题..
是这样的,平时都是用json数组的数据,今天想自己生成json数据,结果就遇到重复最后一项的坑
代码如下
var blockTitle01 =['内容1','内容2','内容3','内容4','内容5','内容6']; var array ={}; for(var i =0;i<blockTitle01.length ;i++){ /* var id = 'echart0'+i; var title = blockTitle01[i]; */ array['id'] = 'echart0'+i; array['title'] = blockTitle01[i]; blockcontent.push(array); var jsonString = JSON.stringify(blockcontent); console.log(array); } console.log(jsonString);
傻了吧.........................
因为array这是个对象,数组push都是指向这个对象的引用地址,for循环修改的是属性,所以修改好也就是最后一个内容,所有引用了地址存放的数组也收到影响。这样就解释了最后数组打印出来都是最后一个json属性内容。
修改:
把var array ={}; 放到for循环里面
结果如下