1

我有一个数组

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
}

当键是字母并且它不起作用时,我试图获取值...但是当键是数字时,我可以在不获取“未定义”输出的情况下获取值

4

2 回答 2

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。忽略字符串中的前导空格。

基数

一个整数,表示上述字符串的基数。虽然此参数是可选的,但始终指定它以消除读者混淆并保证可预测的行为。当未指定基数时,不同的实现会产生不同的结果。

于 2012-10-28T18:45:40.453 回答
4

首先,hex_to_dec不是数组,是对象。而且您的功能工作正常,请尝试:

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

console.log(get_dec_from_hex("D"));
于 2012-10-28T18:43:05.000 回答