我在这里看到这个函数可以交换两个数组元素,但我似乎无法弄清楚它是如何工作的。看起来正在进行某种数组解构(?)。我只是不明白原始 data
-array 是如何以及为什么实际改变的。
有人可以向我解释一下这是如何工作的吗?
const swap = (a, i, j) => {
[a[i], a[j]] = [a[j], a[i]] // ???
}
const data = [1, 2, 3, 4]
swap(data, 0, 2)
console.log(data)
最佳答案
从右边开始:
[a[j], a[i]]
这将创建一个包含两个元素的新数组:索引 j
处的元素,后跟索引 i
处的元素。
左边是解构
[a[i], a[j]] =
所以这等同于以下内容:
a[i] = theNewArray[0];
a[j] = theNewArray[1];
由于这是在改变 a
,因此对数组的任何引用都可以感受到这些变化,因此 data
将“看到”这些变化。
关于javascript - 这个交换数组元素的函数是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64145956/