【发布时间】:2021-01-16 14:53:03
【问题描述】:
我在这里看到了这个函数,它将交换两个数组元素,但我似乎无法弄清楚它是如何工作的。看起来正在进行某种数组解构(?)。我只是不明白原来的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,b].includes(c)来速记或陈述时
标签: javascript swap destructuring ecmascript-2016