for循环对数组push一个对象时遇到的坑
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一个对象时遇到的坑相关推荐
- js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip
js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...
- js 的数组怎么push一个对象
js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...
- 关于ajax同步异步处理循环遍历及push时发生的疑问
今天写了一个简单的ajax请求,其中因为一些需求 渲染过程没有写在回调函数内,要在外部访问遍历后的数组进行渲染,第一次写时图片如下图 此时console.log(arr)打印出来的内容是一个长度为0, ...
- vue的for循环数组push的坑
vue的for循环数组push时候遇见的坑 在vue中循环数组push时候是一个对象,导致和想要的不一致. 解决办法,直接上代码: for (let x = 0; x < this.ansNum ...
- 在2D数组上进行迭代时,为什么循环顺序会影响性能?
本文翻译自:Why does the order of the loops affect performance when iterating over a 2D array? Below are t ...
- 数组push时 覆盖的问题
数组push时,第二次的数据会覆盖第一次的数据 let currentData = {oneMonth: this.oneMonth,twoMonth: this.twoMonth,threeMont ...
- Vue中数组push问题
最近在Vue框架中使用数组push遇到两个坑 1. 向数组中push后,无法获取到数组中的属性值 数组赋值: ...... res.data.forEach((item,index) => { ...
- 循环往数组中添加对象
循环往数组中插入对象时要确保每次都创建一个新的对象,不能重复使用之前的对象 //错误的方法 var arr = []; var obj = {}; for (var i = 0; i < 10; ...
- Java(二)分支循环、数组、字符串、方法
文章目录 一.分支循环 1.1 分支结构 1.2 循环结构 1.3 跳转语句 1.4 分支循环相关问题 1.4.1 switch是否能作用在byte上,是否能作用在long上,是否能作用在String ...
最新文章
- 【linux学习笔记三】链接命令
- Linux命令学习笔记之一目录与文件基本操作
- 【Java基础】static初始化块
- (70)Verilog HDL测试激励:复位激励2
- C语言之extern关键字探究
- C语言中指针的基类型,c – 将指针从一种基类型转换为另一种基类型
- Hive中HSQL中left semi join
- mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚
- sql server删除主键约束所想到的
- 汇编语言和C语言单片机哪个更好用?
- 御剑飞行扫描后门加上burpsuite字典树爆破
- php 调用speex解码库,android 用speex做回音消除
- 弱分类器 强分类器(弱学习器 强学习器)
- python turtle工具绘制四叶草
- gromacs 安装_GROMACS简介与安装
- C#调用Excel Vba宏
- android 电视怎么投屏,安卓手机怎么投屏到电视
- 发明专利的权利要求书怎么写?
- LaSOT: A High-quality Benchmark for Large-scale Single Object Tracking(论文翻译)
- 什么是真正的骨传导耳机,五款真骨传导耳机推荐