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

vue

比如这个项目当中分类中的年级学科 通过请求后台接口获取到数据


当点击年级中某个数据或学科中某个数据 需要将当前的下标及id传一下 并加上样式

原效果图如下:

如果 只是将id index 传过去 并在布局用 三元运算符 判断 加样式 并不会出现效果

出现这种问题的原因是 用双层循环 第一层只能用第一层的下标 而第二层 就不会拿到第一层的下标 解决此问题的方法可以 利用深拷贝 object.assign()

说到深拷贝 肯定涉及到浅拷贝 那么他们两个有什么区别呢?

深拷贝

深拷贝复制变量值,对于非基本类型的变量,则递归至基本类型变量后,再复制。 深拷贝后的对象与原来的对象是完全隔离的,互不影响, 对一个对象的修改并不会影响另一个对象。
浅拷贝

浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。

可 以 使 用 for in 、 Object.assign 、 扩 展 运 算 符 … 、Array.prototype.slice()、Array.prototype.concat() 、递归等递归函数实现深拷贝

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

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


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

下期博客见lo~

以上是 vue项目 双层循环第二层获取不到第一层的下标如何解决 的全部内容, 来源链接: utcz.com/z/377382.html

回到顶部