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

在这里插入图片描述

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

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

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

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

在这里插入图片描述
这样这个问题就能解决啦 注意 出现这个问题的主要缘由是双层循环 若是是更多层循环的话 更容易出现此类问题 尤为在获取值方面 若是出现此类问题 能够考虑一下利用深拷贝解决这种相似问题~布局

下期博客见lo~prototype