JavaScript 使用数组元素进行解构

标签 javascript destructuring spread-syntax

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

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

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

最佳答案

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

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 使用数组元素进行解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68743868/

相关文章:

php - 如何在表单中的每个输入/新行之后添加 <br/> 标签

javascript - 无法使用 Azure DevOps Rest API 上传图像(二进制)

javascript - 解构 JS 中的不同类型

javascript - import 语句中的解构赋值

javascript - Babel 加载器错误 : rest/spread operator not understood

javascript - 使用下拉菜单滑动的水平菜单

javascript - 如何检查数组中的字符串是否包含二维数组中的两个或多个字符串?

reference - 循环变量前的 `&`有什么作用?

javascript - TypeScript 无法在扩展语法函数调用中推断数组类型

javascript - 我可以使用扩展语法使用 TypeScript 创建包装函数,而不必指定参数和类型吗?