for循环对数组push一个对象时遇到的坑

json数组用for循环进行赋值并push,导致打印的所有结果是一样的

如图所示 动态向一个数组中push对象后tree的值打进结果一样
Console(this.tree[i].lable) 的结果是 map1 map2 map3 map4 map9
Console(this.tree) 的结果是 map2 map2 map2 map2 map2

因为Object对象是地址引用传递的,c对象在循环外声明时,每次a.push©添加的c都是同一个对象。就是说a[0],a[1],a[2]中存放的都是同一个对象的引用地址,在修改这个对象的属性后,所有存放这个对象引用的地方都会受到影响。


解决办法:在循环里边进行对象进行push 就不存在地址引用的问题了

记录一下此问题 大家闭坑
转载:https://bbs.csdn.net/topics/391988383?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160929965016780273685996%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id=160929965016780273685996&biz_id=&utm_medium=distribute.pc_search_result.none-task-discussion_topic-2allfirst_rank_v2~rank_v29-1-391988383.first_rank_v2_pc_rank_v29&utm_term=json%E6%95%B0%E7%BB%84%E7%94%A8for%E5%BE%AA%E7%8E%AF%E8%BF%9B%E8%A1%8C%E8%B5%8B%E5%80%BC%E5%B9%B6push%EF%BC%8C%E5%AF%BC%E8%87%B4json%E6%89%80%E6%9C%89%E7%9A%84%E6%95%B0%E6%8D%AE%E9%83%BD%E5%8F%98%E6%88%90%E4%B8%80%E6%A0%B7%E7%9A%84%E4%BA%86%EF%BC%8C%E8%BF%99%E6%98%AF%E6%80%8E%E4%B9%88%E5%9B%9E%E4%BA%8B

for循环对数组push一个对象时遇到的坑相关推荐

  1. js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

    js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...

  2. js 的数组怎么push一个对象

    js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...

  3. 关于ajax同步异步处理循环遍历及push时发生的疑问

    今天写了一个简单的ajax请求,其中因为一些需求 渲染过程没有写在回调函数内,要在外部访问遍历后的数组进行渲染,第一次写时图片如下图 此时console.log(arr)打印出来的内容是一个长度为0, ...

  4. vue的for循环数组push的坑

    vue的for循环数组push时候遇见的坑 在vue中循环数组push时候是一个对象,导致和想要的不一致. 解决办法,直接上代码: for (let x = 0; x < this.ansNum ...

  5. 在2D数组上进行迭代时,为什么循环顺序会影响性能?

    本文翻译自:Why does the order of the loops affect performance when iterating over a 2D array? Below are t ...

  6. 数组push时 覆盖的问题

    数组push时,第二次的数据会覆盖第一次的数据 let currentData = {oneMonth: this.oneMonth,twoMonth: this.twoMonth,threeMont ...

  7. Vue中数组push问题

    最近在Vue框架中使用数组push遇到两个坑 1. 向数组中push后,无法获取到数组中的属性值 数组赋值: ...... res.data.forEach((item,index) => { ...

  8. 循环往数组中添加对象

    循环往数组中插入对象时要确保每次都创建一个新的对象,不能重复使用之前的对象 //错误的方法 var arr = []; var obj = {}; for (var i = 0; i < 10; ...

  9. Java(二)分支循环、数组、字符串、方法

    文章目录 一.分支循环 1.1 分支结构 1.2 循环结构 1.3 跳转语句 1.4 分支循环相关问题 1.4.1 switch是否能作用在byte上,是否能作用在long上,是否能作用在String ...

最新文章

  1. 【linux学习笔记三】链接命令
  2. Linux命令学习笔记之一目录与文件基本操作
  3. 【Java基础】static初始化块
  4. (70)Verilog HDL测试激励:复位激励2
  5. C语言之extern关键字探究
  6. C语言中指针的基类型,c – 将指针从一种基类型转换为另一种基类型
  7. Hive中HSQL中left semi join
  8. mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚
  9. sql server删除主键约束所想到的
  10. 汇编语言和C语言单片机哪个更好用?
  11. 御剑飞行扫描后门加上burpsuite字典树爆破
  12. php 调用speex解码库,android 用speex做回音消除
  13. 弱分类器 强分类器(弱学习器 强学习器)
  14. python turtle工具绘制四叶草
  15. gromacs 安装_GROMACS简介与安装
  16. C#调用Excel Vba宏
  17. android 电视怎么投屏,安卓手机怎么投屏到电视
  18. 发明专利的权利要求书怎么写?
  19. LaSOT: A High-quality Benchmark for Large-scale Single Object Tracking(论文翻译)
  20. 什么是真正的骨传导耳机,五款真骨传导耳机推荐

热门文章

  1. 毕业季-Word转PDF图像模糊问题
  2. 做外贸SOHO,真的能实现时间和财富自由吗
  3. JS判断某个时间戳是否为当天时间
  4. 8 处理空间数据与表格数据(2)
  5. <SQL>《SQL命令(含例句)精心整理版(3)》
  6. 知识分享:拍马屁(PMP)的入门知识
  7. 面试经典题——计算机网络
  8. JSP密码不少于6位
  9. 各种版本的称呼--例如Lite指精减版
  10. uni-app中使用Towxml 3.0,小程序完美支持Markdown