您可以使用解构分配来定义ES6中的枚举,如下所示:
var [red, green, blue] = [0, 1, 2];
Run Code Online (Sandbox Code Playgroud)
相反,我希望解构分配的右侧是动态的.例如:
var MAX_ENUM_SIZE = 32;
var ENUM = new Array(MAX_ENUM_SIZE);
for (var i = 0; i < MAX_ENUM_SIZE; i++) ENUM[i] = i;
var [red, green, blue] = ENUM;
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎是一个黑客.如果我希望将来有更大的枚举怎么办?因此,我正在考虑使用迭代器进行解构赋值,如下所示:
var [red, green, blue] = enumeration(/* I don't want to specify size */);
Run Code Online (Sandbox Code Playgroud)
但是,我不认为可以使用迭代器进行解构赋值[需要引证].有没有办法实现这个目标?