vue 数组 交换位置

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 - 1serial + 1 的值是否有效索引值?

然后继续 —— 到底是数组元素交换不成功,还是数组元素交换成功了但是没有重新渲染?如果是没有渲染,是不是可以考虑刷新一个数组(用展开运算符,或者 map 或者 [].concat() 等都可以产生元素相同的新数组)?

程序之所以需要“调试”,就是因为从代码很难看出来某些逻辑问题,需要通过分析运行中的数据来判断问题出在哪里。比如这段代码,最多就能看出来 —— 没做容错处理。但是如果前面的逻辑能保存不会出错,也不需要专门的容错处理 ……

以上是 vue 数组 交换位置 的全部内容, 来源链接: utcz.com/p/936937.html

回到顶部