var result ="1fg";
for(i =0; i < result.length; i++){
var chr = result.charAt(i);
var hexval = chr.charCodeAt(chr)
document.write(hexval + " ");
}
这给出 NaN 102 103。
可能是因为它将“1”视为整数或类似的东西。有什么办法可以转换 “1”-> 字符串到正确的整数?在这种情况下:49。
会是这样
49 102 103 而不是 NaN 102 103
干杯,
蒂莫
最佳答案
charCodeAt
函数采用索引,而不是字符串。
当你向它传递一个字符串时,它会尝试将字符串转换为数字,如果不能则使用 0
。
您的第一次迭代调用 '1'.charCodeAt('1')
。它会将 '1'
解析为数字并尝试获取字符串中的第二个字符代码。由于字符串只有一个字符,即 NaN
。
您的第二次迭代调用 'f'.charCodeAt('f')
。由于 'f'
无法解析为数字,它将被解释为 0
,这将为您提供第一个字符代码。
您应该编写 var hexval = result.charCodeAt(i)
以获取原始字符串中给定位置的字符代码。
你也可以写var hexval = chr.charCodeAt(0)
来获取chr
字符串中单个字符的字符编码。
关于Javascript 字符串到 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4958881/