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循环里面

结果如下

 

posted @ 2019-04-11 18:17  树叶铃铛  阅读(346)  评论(0编辑  收藏  举报