javascript按键获取数组值

时间:2012-10-28 18:39:09

标签: javascript arrays key-value

我有一个数组

var hex_to_dec = {
    '0' : 0,
    '1' : 1,
    '2' : 2,
    '3' : 3,
    '4' : 4,
    '5' : 5,
    '6' : 6,
    '7' : 7,
    '8' : 8,
    '9' : 9,
    'A' : 10,
    'B' : 11,
    'c' : 12,
    'D' : 13,
    'E' : 14,
    'F' : 15
};

和一个功能

function get_dec_from_hex(key){//if key=A
    console.log(hex_to_dec["A"]);//works
    return hex_to_dec[key];//doesnt work
}

我正在尝试获取键,当键是一个字母并且它不起作用...但是当键是一个数字我可以获得值而不会得到“未定义”输出

2 个答案:

答案 0 :(得分:5)

您不必自己维护转化列表,parseInt可以让您更轻松。

在你的控制台中试试这个:

parseInt('1', 16) // 1
parseInt('2', 16) // 2
...
parseInt('A', 16) // 10
parseInt('B', 16) // 11
...
parseInt('F', 16) // 15

来自https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt

  

解析字符串参数并返回指定基数的整数   或基地。

     

var intValue = parseInt(string[, radix]);

     

<强>字符串

     

要解析的值。如果string不是字符串,则将其转换为   一。字符串中的前导空格将被忽略。

     

<强>基数

     

表示上述字符串的基数的整数。虽然这个   参数是可选的,总是指定它以消除读者的困惑   并保证可预测的行为。不同的实现   在未指定基数时产生不同的结果。

答案 1 :(得分:4)

首先,hex_to_dec不是数组,是一个对象。 并且您的功能正常,请尝试:

function get_dec_from_hex(key){
    return hex_to_dec[key];
} 

console.log(get_dec_from_hex("D"));