vue 数组 交换位置
本意是想数组中的数据可以前后交换位置,
let data = [[{id: a1},{id: a2}],[{id: b3},{id: b4}],[{id: c5}, {id: c6}]]
我写的代码
movePostion(item, serial, status) { let swapArray = (arr=[],orig=0,targ=0)=>{
return [arr[targ],arr[orig]] = [arr[orig],arr[targ]];
}
if(status === 'up') {
swapArray(this.data,serial, serial-1)
} else {
swapArray(this.data,serial, serial+1)
}
},
交换数据过程中不知道为什么有那么几次不成功,有大神指点下吗?或者有更好的写法吗?
回答:
看来误解你了,我回答了你的另一个问题。看来真不是学生来随便问问。
首先,发现有问题之后,需要去分析问题为什么发生,通常这是需要去看现象的。比如你说的“有那么几次不成功”,那是什么情况下会不成功呢?这个时候的 serial
值是什么?this.data
是不是正常的?serial - 1
或 serial + 1
的值是否有效索引值?
然后继续 —— 到底是数组元素交换不成功,还是数组元素交换成功了但是没有重新渲染?如果是没有渲染,是不是可以考虑刷新一个数组(用展开运算符,或者 map 或者 [].concat()
等都可以产生元素相同的新数组)?
程序之所以需要“调试”,就是因为从代码很难看出来某些逻辑问题,需要通过分析运行中的数据来判断问题出在哪里。比如这段代码,最多就能看出来 —— 没做容错处理。但是如果前面的逻辑能保存不会出错,也不需要专门的容错处理 ……
以上是 vue 数组 交换位置 的全部内容, 来源链接: utcz.com/p/936937.html