JavaScript字符串转换为整数数组

3
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

干杯,

Timo


  1. 你声明了 i 吗?
  2. 不要在循环内部放置声明。最好事先声明所有变量。请参见此处:http://jsfiddle.net/yJVSA/
- Šime Vidas
1个回答

7

charCodeAt函数需要传入一个索引,而不是一个字符串。

当你传入一个字符串时,它会尝试将字符串转换为数字,并在无法转换时使用0

你的第一次迭代调用了'1'.charCodeAt('1')。它会将'1'解析为数字,并尝试获取字符串中的第二个字符的编码。由于该字符串只有一个字符,所以结果是NaN

你的第二次迭代调用了'f'.charCodeAt('f')。由于'f'不能被解析为数字,它将被解释为0,这将给出第一个字符的编码。


你应该写var hexval = result.charCodeAt(i)来获取原始字符串中给定位置的字符编码。

你也可以写var hexval = chr.charCodeAt(0)来获取chr字符串中单个字符的字符编码。


谢谢!我怎么可能会忽略那个!我简直不敢相信,我已经看了几个小时的代码了^^如果可以的话,我会给你100个赞的。 - Timo Willemsen
谢谢你的解释,现在我真的明白了! - Timo Willemsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接