繁体   English   中英

使用数组解构分配调用哪个 function?

[英]Which function is being called using an array destructuring assigment?

 let [x, y] = ["Ele", "Stack"].reduce((a, s) => { ax = s; ay = s; return a; }, { x: {}, y: {}});

上面的代码片段会引发错误,因为它试图对 object(键:值)进行数组解构赋值。

我缺乏知识

使用数组解构赋值调用哪个 function?

我认为您遇到了该类型错误,因为数组解构隐式调用Array[Symbol.iterator] ,这是未定义的,因为您实际上是从reduce()返回 object,而不是数组。 修复方法是将其替换为 Object 解构

 let {x, y} = ["Ele", "Stack"].reduce((a, s) => { ax = s; ay = s; return a; }, { x: {}, y: {}}); console.log({ x, y })

array解构的工作方式就像它获取数组的索引并将其放入您分配的变量中。

例如,假设数组是-

const arr = [1, 2, 3, 4, 5];

现在您想将数组元素解构为变量。

const [a, b] = arr;

这会将arr[0]的值放入a并将arr[1]放入b 这样,您可以根据需要分配任意数量。

如果要将两个索引放入两个变量中,并将元素的 rest 放入另一个数组中,则可以使用像这样的扩展运算符来做到这一点 -

const [a, b, ...rest] = arr;

这里, aarr[0]的值, barr[1]的元素, rest将 rest 的元素放入rest数组中。 所以rest阵列将是-

[3, 4, 5]

我希望这能帮到您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM