我有一个数组 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]
因为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。