当前位置: 首页 > news >正文

JS的foreach方法修改值的问题

问题描述

最近开发过程中,向数组动态插入内容后vue渲染器报错如下:
在这里插入图片描述
一般可能认为是v-for的key设置有问题可能重复了,但是检查数据过后发现的问题在于插入后没有对后续的索引值进行更新(不是数组默认索引,而是引用类型内部人工添加的索引字段)

解决方法

1.把v-for中使用人工添加的索引字段值修改成系统默认的数组索引,可避免潜在的更新错误,但是无法修正数据中人工添加的索引字段重复事实,后续还用仍然可能造成问题
2.在插入逻辑后增加手动修改索引字段的逻辑

思考

使用foreach遍历数组时,修改element中的值是否会影响原数组中的值?记忆中对基本类型数据的数组做这样的操作是不会影响的。

实践

在这里插入图片描述
添加该逻辑后发现可以影响原数组的字段值。

结论

foreach在遍历时,若数组中的数据是基本类型,如Number, String, Boolean等,修改element的值不会影响原数组;而当数组内数据为引用类型时,如Array,Object,修改element的值会影响原数组一起改变。所以foreach在遍历输出element的时候使用的是浅拷贝模式。

相关文章:

  • vscode使用F5启动vue项目调试
  • Object.assign()方法合并两个js对象
  • git----暂存变更和恢复暂存的变更
  • pull/push时提示The requested URL returned error: 403
  • RESTFUL接口文档设计指南
  • JS用forEach遍历数组时无法用return退出
  • Element——el-table给所有的row和column数据加上索引
  • 使用ElementUI开发的情况下,多使用Layout布局
  • Element——el-table单元格无法设置外边距,只能通过border-width实现间隔效果
  • 分支开发模式Git常用操作
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • Vue——子组件中引入父组件
  • Vue——$attrs和$listeners
  • JS代码优化技巧——持续更新
  • 文字居于div底部的方式
  • .pyc 想到的一些问题
  • 03Go 类型总结
  • Android框架之Volley
  • AngularJS指令开发(1)——参数详解
  • Github访问慢解决办法
  • springMvc学习笔记(2)
  • TypeScript实现数据结构(一)栈,队列,链表
  • 目录与文件属性:编写ls
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 写代码的正确姿势
  • 一道面试题引发的“血案”
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • Prometheus VS InfluxDB
  • 阿里云移动端播放器高级功能介绍
  • ​虚拟化系列介绍(十)
  • ​一些不规范的GTID使用场景
  • #FPGA(基础知识)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • $jQuery 重写Alert样式方法
  • (done) 两个矩阵 “相似” 是什么意思?
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (七)Java对象在Hibernate持久化层的状态
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)关于多人操作数据的处理策略
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET Core跨平台微服务学习资源
  • .NET MVC之AOP
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net6+aspose.words导出word并转pdf
  • .NET框架设计—常被忽视的C#设计技巧
  • .NET中winform传递参数至Url并获得返回值或文件
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • :中兴通讯为何成功
  • ;号自动换行