使用数组元素进行 JavaScript 解构

Posted

技术标签:

【中文标题】使用数组元素进行 JavaScript 解构【英文标题】:JavaScript destructuring with an array element 【发布时间】:2021-10-15 00:35:35 【问题描述】:

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

const [x1, ...[result]] = [3, 4, 5]
console.log([result])

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

【问题讨论】:

result4,而不是 [ 4 ][ result ] 永远不能是 [ 4, 5 ]。它的行为似乎与const [first] = array; 类似;在这种情况下,它似乎将[ 3, 4, 5 ] 的其余部分,即[ 4, 5 ] 扩展到...[result],然后将[ 4, 5 ] 解构为[ result ];因此result4 【参考方案1】:

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

const [a,...b] = [3,4,5]

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

但在你的情况下,发生的事情是,

const [a,...[b]] = [3,4,5]

这实际上只分配给空数组的第一个变量,其第一个值为b,它始终等于4,而不是您所期望的[4,5]

所以相当于下面的情况

const [a,...[b,c]] = [3,4,5]

唯一的区别是您没有在您的情况下提供变量c。 所以b 对应4c 对应5

【讨论】:

以上是关于使用数组元素进行 JavaScript 解构的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript------解构赋值

[JavaScript]解构赋值详解

javascript ES6 新特性之 解构

JavaScript ES6 - 解构赋值

JavaScript ES6 - 解构赋值

JavaScript ES6 - 解构赋值