[解決済み] es6 で配列の最後の要素を取得するためのデストラクション
2022-05-15 01:08:15
質問
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]
しかし、多分これはちょっと1つずつずれるエラーが起こりやすいでしょう。スプラッタはデストラクチャリングの最後のものだけでいいのでしょうか?
どのように解決するのですか?
ES6/2015では不可能です。規格で規定されていないだけです。
を見ればわかるように
仕様では
を参照してください。
FormalParameterList
はどちらでもよい。
-
a
FunctionRestParameter
-
a
FormalsList
(パラメーターのリスト) -
a
FormalsList
の後にFunctionRestParameter
持つこと
FunctionRestParameter
の後にパラメータが続くことはありません。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン