使用解构赋值交换数组元素,它不起作用

问题描述 投票:0回答:1

我有一个数组 a,我想通过在 JavaScript 中使用解构赋值来交换

a[i]
a[a[i]]
的值,但它不起作用。

a=[1,0]
[a[0],a[a[0]]]=[a[a[0]],a[0]]
console.log(a)//[1,0]

但是使用

a[1]
而不是
a[a[0]]
,它有效,为什么?

a=[1,0]
[a[0],a[1]]=[a[1],a[0]]
console.log(a)//[0,1]
javascript arrays swap
1个回答
0
投票

因为js先计算等式右边, 在第一个示例中,[a[a[0]],a[0]] 变为 [0,1]; 然后js执行a[0] = 0和a[a[0]] = 1, 但是给a[0]赋值0后,a[a[0]]变成a[0],所以a[a[0]] = 1实际上是a[0] = 1。

© www.soinside.com 2019 - 2024. All rights reserved.