【发布时间】:2011-03-10 21:20:28
【问题描述】:
我想创建 C 类型的枚举,值自动从 0 开始。
下面的代码有什么问题?
function ArrayToEnum(arr)
{
var len = arr.lenght;
en = {};
for(i=0;i<len;i++)
en[arr[i]]=i;
return en;
}
a=['foo','bar'];
b=ArrayToEnum(arr);
console.debug(b.foo);
> Undefined
我希望它打印 0 但相反(至少在 Chromium 9.0 中)这是未定义的。如果我不调用函数,而是直接应用主体,它可以工作:
var l=a.length;
for(i=0;i<l;i++) b[a[i]]=i;
console.debug(b.foo);
> 0
函数有什么问题?
【问题讨论】:
-
您在代码的第 3 行拼错了
length。您的实际代码中是否也存在该错误?还有——这有什么意义?
标签: javascript object enums