中间值
var arr = [1, 2, 4, 3, 5]
var temp = 0
temp = arr[2] // temp = 4
arr[2] = arr[3] // 此时数组为[1,2,3,3,5]
arr[3] = temp
console.log(arr); // (5) [1, 2, 3, 4, 5]
这是最基础的方法,创建一个变量temp进行中转,将“4”先赋值给temp,然后用“3”覆盖“4”,然后再将temp的值赋给原来“3”
splice方法
splice方法的使用。可以看这篇:https://www.jianshu.com/p/2c5d0dfa9d1d
- 使用es5的方法
封装成一个函数
function swapArray(arrayObject, index1, index2){
arrayObject[index1] = arrayObject.splice(index2, 1, arr[index1])[0]
}
测试:
var arr = [1, 2, 3, 4, 5]
function swapArray(arrayObject, index1, index2){
arrayObject[index1] = arrayObject.splice(index2, 1, arr[index1])[0]
}
swapArray(arr, 2, 3)
console.log(arr); // (5) [1, 2, 4, 3, 5]
- 使用es6展开运算符
function swapArray(arrayObject, index1, index2){
arrayObject.splice(index2,1,...arrayObject.splice(index1, 1 , arrayObject[index2]));
}
两种方法的实现原理都一样,只是实现方法不同
解构赋值法
var arr = [1, 2, 3, 4, 5];
[arr[3], arr[2]] = [arr[2], arr[3]]
console.log(arr); // (5) [1, 2, 4, 3, 5]
特别声明:如果使用解构赋值的方法对数组元素进行交换,向上面的例子,上一行是数组的声明,下一行就要交换,那么数组声明结束必须加分号,不然报错
网友评论