【问题标题】:JavaScript destructuring with an array element使用数组元素进行 JavaScript 解构
【发布时间】: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

标签: javascript destructuring spread-syntax


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-02-07
    • 2010-10-22
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 2019-03-25
    • 2018-07-18
    • 1970-01-01
    • 2021-01-19
    相关资源
    最近更新 更多