我有一个数组
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
}
我正在尝试获取键,当键是一个字母并且它不起作用...但是当键是一个数字我可以获得值而不会得到“未定义”输出
答案 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"));