ecmascript-6 - es6 中解构获取数组的最后一个元素

标签 ecmascript-6 destructuring

在coffeescript中这很简单:

coffee> a = ['a', 'b', 'program']
[ 'a', 'b', 'program' ]
coffee> [_..., b] = a
[ 'a', 'b', 'program' ]
coffee> b
'program'

es6 允许类似的东西吗?

> const [, b] = [1, 2, 3]                              
'use strict'                                           
> b  // it got the second element, not the last one!                      
2                                                      
> const [...butLast, last] = [1, 2, 3]          
SyntaxError: repl: Unexpected token (1:17)                                                                                                                                                        
> 1 | const [...butLast, last] = [1, 2, 3]                                                                                                                                                        
    |                  ^                                                                                                                                                                          
    at Parser.pp.raise (C:\Users\user\AppData\Roaming\npm\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\parser\location.js:24:13)                                           

当然我可以用 es5 的方式来做 -

const a = b[b.length - 1]

但也许这有点容易因一个错误而消失。啪啪声只能是解构中的最后一件事吗?

最佳答案

console.log('last', [1, 3, 4, 5].slice(-1));
console.log('second_to_last', [1, 3, 4, 5].slice(-2));

关于ecmascript-6 - es6 中解构获取数组的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33064377/

相关文章:

javascript - 将对象数组转换为数组

javascript - 将完整数组分配给解构变量

lisp - 在解构绑定(bind)中声明未使用变量的任何好方法?

javascript - 在 JavaScript 中导入和导出

javascript - 用 laravel-mix 编译的 ES6 库不起作用

javascript - 有没有办法从项目中删除所有突变观察者而不引用它?

macros - 宏参数的解构是 "really needed"吗?

javascript - 解构 JavaScript 对象时如何只选择几个字段?

javascript - 如何解构对象的属性和属性的属性。 ES6 Javascript

javascript - 创建一个返回具有不可变状态的对象的工厂函数