Javascript java脚本中的rest/spread
有人能解释一下解决方案输入中的Javascript java脚本中的rest/spread,javascript,node.js,Javascript,Node.js,有人能解释一下解决方案输入中的([head,[headTail,[headTail,…tailTail]])在做什么吗?由于声誉不好,我不能评论和询问作者 他正在编写一个函数,该函数在输入中接受一个数组(基于他调用它的位置),但尽管我对Java脚本中的rest和spread知之甚少,但我还是搞不懂这一点 此表达式是在第一个元素(head)、第二个元素(headTail)和其余元素(tailTail)中“解构”给定数组 这个更简单的例子应该更容易理解: let [head, ...tail] =
([head,[headTail,[headTail,…tailTail]])
在做什么吗?由于声誉不好,我不能评论和询问作者
他正在编写一个函数,该函数在输入中接受一个数组(基于他调用它的位置),但尽管我对Java脚本中的rest和spread知之甚少,但我还是搞不懂这一点 此表达式是在第一个元素(head)、第二个元素(headTail)和其余元素(tailTail)中“解构”给定数组
这个更简单的例子应该更容易理解:
let [head, ...tail] = [1, 2, 3, 4]; // head = 1, tail = [2, 3, 4]
在您的示例中,这个简单的解构只是再次应用于尾部。正如Lex82正确回答的那样,这是一种解构数组的方法。所以,如果你有
const [head, ...tail] = [1, 2, 3, 4];
您的意思是将第一个元素分配给头部
,将其余元素分配给尾部
。所以,head=1
和tail=[2,3,4]
在你所引用的答案中,他们更进一步。他们需要第一个元素(头部)、第二个元素(尾部的头部)和其余元素
所以他们想要的是[headTail,…tailTail]=tail
现在,如果我们在第一条语句中替换尾部,它将变成:
[head, ...[headTail, ...tailTail]] = [1,2,3,4]
其中head=1
,headTail=2
和tailTail=[3,4]
您可以简单地执行以下操作:
这将产生同样的结果仅供参考:这种代码的宁静(
[head,[headTail,[headTail,[tailTail]]]
)气味难闻。感谢您完整而清晰的回答!我猜是第二个括号一直让我困惑。
[head, headTail, ...tailTail] = [1,2,3,4]