我正在尝试找到迭代 Google Closure 中定义的枚举上的所有值的最佳方法。假设我定义了以下枚举:
/**
* @enum {number}
*/
sample.namespace.Fruit = {
Orange: 0,
Apple: 1,
Banana: 2
};
现在,我见过的最好的方法是这样的:
for (var key in sample.namespace.Fruit) {
var fruit = /** @type {sample.namespace.Fruit} */ (sample.namespace.Fruit[key]);
// Make a smoothie or something.
}
我觉得读起来很痛苦。我列出了三次命名空间,只是为了让编译器顺其自然。我应该使用另一种迭代技术吗?这是完成这种形式的迭代的最佳方式吗?