使用数组元素进行 JavaScript 解构

lea*_*617 2 javascript destructuring spread-syntax

我在 JavaScript 中遇到过以下问题:

const [x1, ...[result]] = [3, 4, 5]
console.log([result])
Run Code Online (Sandbox Code Playgroud)

我知道 x1 是 3,但为什么记录结果是 [4] 而不是 [4,5]?

小智 5

所以基本上如果我们遵循这个语法会发生什么

const [a,...b] = [3,4,5]
Run Code Online (Sandbox Code Playgroud)

Javascript 创建一个名为的数组b并具有值[4,5]

但就你而言,正在发生的事情是,

const [a,...[b]] = [3,4,5]
Run Code Online (Sandbox Code Playgroud)

这实质上是只分配给空数组的第一个变量,第一个值为 as b,它总是等于4而不是[4,5]你所期望的。

所以它相当于下面的情况

const [a,...[b,c]] = [3,4,5]
Run Code Online (Sandbox Code Playgroud)

唯一的区别是您没有c在您的案例中提供变量。所以b将对应于4并且c将对应于5