In Coffee diese einfach ist:Destrukturierung das letzte Element eines Arrays in es6 zu bekommen
coffee> a = ['a', 'b', 'program']
[ 'a', 'b', 'program' ]
coffee> [_..., b] = a
[ 'a', 'b', 'program' ]
coffee> b
'program'
Does es6 für etwas ähnliches erlauben?
> 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)
Natürlich kann ich es die ES5 Weise tun -
const a = b[b.length - 1]
Aber vielleicht ist dies ein wenig anfällig durch einen Fehler aus. Kann der Splat nur das letzte Ding in der Destrukturierung sein?
Warum denkt jeder, ES6 ändert alles und es gibt eine neue Syntax für xyz? –
@FelixKling die Frage ist insbesondere über das Verhalten von '...' in es6, insbesondere, dass es nur als letzte Sache bei der Destrukturierung oder in einer Parameterliste verwendet werden kann. Dies ist potentiell kontraintuitiv für jemanden, der von Coffeescript in es6 kommt und daher ist diese Frage potentiell nützlich. –
Das bedeutet neben "[1,2,3] .slice (-1)" kann man auch nicht "[1,2,3] .slice (0, -1)" äquivalent strukturieren. Dies sind übliche Operationen. ES6 Destrukturierung ist irgendwie ein Witz! – rand