使用数组元素进行 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]?
【问题讨论】:
result
是 4
,而不是 [ 4 ]
。 [ result ]
永远不能是 [ 4, 5 ]
。它的行为似乎与const [first] = array;
类似;在这种情况下,它似乎将[ 3, 4, 5 ]
的其余部分,即[ 4, 5 ]
扩展到...[result]
,然后将[ 4, 5 ]
解构为[ result ]
;因此result
是4
。
【参考方案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
对应4
和c
对应5
【讨论】:
以上是关于使用数组元素进行 JavaScript 解构的主要内容,如果未能解决你的问题,请参考以下文章