2012-12-06 62 views
-1

我正在尝试创建一个包含字母:数字对的对象。我计划创建函数来检索如果给定一个数字的两个字母,以及该字母给出的数字。在我能得到那么远之前,我在这个对象上失败了。Javascript - 对象文字 - 迭代

var letterList = { 
    A : 1, 
    B : 2, 
    C : 3, 
    D : 4, 
    E : 5, 
    F : 6, 
    G : 7, 
    H : 8, 
    I : 9, 
    J : 10, 
    K : 11, 
    L : 12, 
    M : 13, 
    N : 14, 
    O : 15, 
    P : 16, 
    Q : 17, 
    R : 18, 
    S : 19, 
    T : 20, 
    U : 21, 
    V : 22, 
    W : 23, 
    X : 24, 
    Y : 25, 
    Z : 26 
}; 

for (x in letterList) { 
    if (letterList.hasOwnProperty(x)) { 
    document.write("letters = " + x + " numbers = " + letterList[x]); 
    } 

输出什么也没有。
我的对象创建不正确吗?任何建议表示赞赏。

+3

你忘了关闭最后的花括号吗?否则它应该工作,虽然 –

+2

你错过了最后一个结束花括号。除此之外,你的代码似乎很好:http://jsfiddle.net/9cVMN/ – Niko

+0

不需要查找表:'parseInt(“A”,36)-9;' – epascarello

回答

1

该代码应该可以工作,只需要在它后面再加一个右大括号(})。检查你的错误控制台。顺便说一下,你真的应该可以省略hasOwnProperty检查,因为你的普通对象不会继承Object.prototype的任何枚举属性。

除此之外,你可以短得多写代码:

for (var charCode = 65; charCode < 91; charCode++) 
    document.write("letters = " + String.fromCharCode(charCode) + 
        " numbers = " + (charCode-64)); 

也注意到了,在枚举不保证该密钥的任何命令。

+0

谢谢Bergi。我甚至没有考虑过使用charCodes! – Justin