前言
交换数组元素位置是开发项目中经常用到的场景,总结下用过的几种方式。
第三方变量
最基础的方式,创建一个变量作为中转。
let temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
splice方法
splice() 方法用于插入、删除或替换数组的元素。如果是删除时,会返回被删除的元素数组。参数如下:
可使用splice方法来交换数组的位置,如下:
array.splice(index2,1,...array.splice(index1, 1 , array[index2]));
array.splice(index1, 1 , array[index2])会将index1位置上的元素替换为index2位置的元素,同时返回[array[index1]](注意此时返回的是数组,所以在代码中加入了扩展运算符...将数组转为参数序列)。再利用同样的方式将index2位置上的元素替换为被删除的原数组的array[index1]的值。完成交换
解构赋值
利用ES6的解构赋值能更加便捷的进行元素交换
[array[index1],array[index2]] = [array[index2],array[index1]];
等号的左右两边模式相同,就会将右边的值赋给左边的变量。解构赋值的详细介绍
以上就是我目前使用过的三种交换方式,以后会再补充。