欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue项目 双层循环第二层获取不到第一层的下标如何解决

程序员文章站 2022-07-10 21:23:06
比如这个项目当中分类中的年级学科 通过请求后台接口获取到数据当点击年级中某个数据或学科中某个数据 需要将当前的下标及id传一下 并加上样式原效果图如下:如果 只是将id index 传过去 并在布局用 三元运算符 判断 加样式 并不会出现效果出现这种问题的原因是 用双层循环 第一层只能用第一层的下标 而第二层 就不会拿到第一层的下标 解决此问题的方法可以 利用深拷贝 object.assign()说到深拷贝 肯定涉及到浅拷贝 那么他们两个有什么区别呢?深拷贝深拷贝复制变量值,对于非....

vue项目 双层循环第二层获取不到第一层的下标如何解决

比如这个项目当中分类中的年级学科 通过请求后台接口获取到数据
vue项目 双层循环第二层获取不到第一层的下标如何解决
vue项目 双层循环第二层获取不到第一层的下标如何解决
当点击年级中某个数据或学科中某个数据 需要将当前的下标及id传一下 并加上样式
原效果图如下:
vue项目 双层循环第二层获取不到第一层的下标如何解决
如果 只是将id index 传过去 并在布局用 三元运算符 判断 加样式 并不会出现效果
出现这种问题的原因是 用双层循环 第一层只能用第一层的下标 而第二层 就不会拿到第一层的下标 解决此问题的方法可以 利用深拷贝 object.assign()
说到深拷贝 肯定涉及到浅拷贝 那么他们两个有什么区别呢?

深拷贝
深拷贝复制变量值,对于非基本类型的变量,则递归至基本类型变量后,再复制。 深拷贝后的对象与原来的对象是完全隔离的,互不影响, 对一个对象的修改并不会影响另一个对象。
浅拷贝
浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。
可 以 使 用 for in 、 Object.assign 、 扩 展 运 算 符 … 、Array.prototype.slice()、Array.prototype.concat() 、递归等递归函数实现深拷贝

看到上面两者的区别 上面的问题就能说得通啦

我用的es6提供的 Object.assign()方法实现的

vue项目 双层循环第二层获取不到第一层的下标如何解决
这样这个问题就能解决啦 注意 出现这个问题的主要原因是双层循环 如果是更多层循环的话 更容易出现此类问题 尤其在获取值方面 如果出现此类问题 可以考虑一下利用深拷贝解决这种类似问题~

下期博客见lo~

本文地址:https://blog.csdn.net/weixin_46390400/article/details/107403365

相关标签: vue js javascript