vue项目 双层循环第二层获取不到第一层的下标如何解决
比如这个项目当中分类中的年级学科 通过请求后台接口获取到数据
当点击年级中某个数据或学科中某个数据 需要将当前的下标及id传一下 并加上样式
原效果图如下:
如果 只是将id index 传过去 并在布局用 三元运算符 判断 加样式 并不会出现效果
出现这种问题的原因是 用双层循环 第一层只能用第一层的下标 而第二层 就不会拿到第一层的下标 解决此问题的方法可以 利用深拷贝 object.assign()
说到深拷贝 肯定涉及到浅拷贝 那么他们两个有什么区别呢?
深拷贝
深拷贝复制变量值,对于非基本类型的变量,则递归至基本类型变量后,再复制。 深拷贝后的对象与原来的对象是完全隔离的,互不影响, 对一个对象的修改并不会影响另一个对象。
浅拷贝
浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。
可 以 使 用 for in 、 Object.assign 、 扩 展 运 算 符 … 、Array.prototype.slice()、Array.prototype.concat() 、递归等递归函数实现深拷贝
看到上面两者的区别 上面的问题就能说得通啦
我用的es6提供的 Object.assign()方法实现的
这样这个问题就能解决啦 注意 出现这个问题的主要原因是双层循环 如果是更多层循环的话 更容易出现此类问题 尤其在获取值方面 如果出现此类问题 可以考虑一下利用深拷贝解决这种类似问题~
下期博客见lo~
本文地址:https://blog.csdn.net/weixin_46390400/article/details/107403365
上一篇: LeetCode——最长公共前缀