JavaScript字符串为int阵列
问题描述:
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 103JavaScript字符串为int阵列
可能是因为它的治疗“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
字符串中单个字符的字符代码。
+0
谢谢!我怎么能看看这个!我不敢相信,我一直在看这个代码现在几个小时^^如果我可以给你100个upvotes – 2011-02-10 15:20:44
1.您是否声明`i`? 2.不要在循环中放置声明。最好事先声明所有变量。看到这里:http://jsfiddle.net/yJVSA/ – 2011-02-10 15:35:03