Ale*_*lex 3 javascript arrays destructuring ecmascript-6
我刚刚发现了令人愉快的 ES6 列表解构语法,即
ls = [1, 2, 3]
[first, ...rest] = ls
Run Code Online (Sandbox Code Playgroud)
这台first以1及rest对[2,3]。但是,是否可以将列表拆分为rest=[1,2]并last=3使用类似的语法?
我没有任何运气谷歌搜索它。我对这样的语法尝试了一些明显的猜测(见下文),但它们都产生了语法错误。
[rest..., last] = ls
[...rest, last] = ls
Run Code Online (Sandbox Code Playgroud)
我想我可以通过两次反转列表来做到这一点,所以我的问题的另一种解决方案是恒定时间列表反转功能。
小智 9
通常所说的“数组解构”实际上是解构一个可迭代对象,其中数组是一个特例。关于可迭代的事情是它们可以是无限的,或者是“懒惰的”。这就是你不能解构成任意数量的元素,然后是最后一个元素的原因:
const [...first, last] = integers();
Run Code Online (Sandbox Code Playgroud)
因为integers可能
function* integers() {
let n = 0;
while (true) yield n++;
}
Run Code Online (Sandbox Code Playgroud)
然后会last是什么?
| 归档时间: |
|
| 查看次数: |
6935 次 |
| 最近记录: |