Javascript 交换数组元素

2022-08-29 23:59:23

有没有更简单的方法来交换数组中的两个元素?

var a = list[x], b = list[y];
list[y] = a;
list[x] = b;

答案 1

您只需要一个临时变量。

var b = list[y];
list[y] = list[x];
list[x] = b;

编辑劫持10年后的顶级答案,我们采用了大量的ES6:

给定数组 ,您现在可以在一行中交换值,如下所示:arr = [1,2,3,4]

[arr[0], arr[1]] = [arr[1], arr[0]];

这将生成数组 。这是解构赋值[2,1,3,4]


答案 2

如果需要使用本机 javascript 的单个表达式,请记住,拼接操作的返回值包含已删除的元素。

var A = [1, 2, 3, 4, 5, 6, 7, 8, 9], x= 0, y= 1;
A[x] = A.splice(y, 1, A[x])[0];
alert(A); // alerts "2,1,3,4,5,6,7,8,9"

编辑:

在表达式的末尾是必需的,因为返回一个数组,在这种情况下,我们需要返回数组中的单个元素。[0]Array.splice()