Строка 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 103.

Вероятно, потому что он рассматривает "1" как целое число или что-то в этом роде. Есть ли способ, которым я могу преобразовать строку "1"-> в правильное целое число? В этом случае: 49.

Так будет

49 102 103 вместо NaN 102 103

Ура,

Timo

1 ответ

Решение

charCodeAt Функция принимает индекс, а не строку.

Когда вы передадите ей строку, она попытается преобразовать строку в число и использовать 0 если не смог.

Ваши первые итерационные вызовы '1'.charCodeAt('1'), Будет разбирать '1' и попытайтесь получить второй символьный код в строке. Поскольку строка имеет только один символ, это NaN,

Ваши вторые итерационные вызовы 'f'.charCodeAt('f'), поскольку 'f' не может быть проанализирован как число, это будет интерпретироваться как 0, который даст вам первый код символа.


Ты должен написать var hexval = result.charCodeAt(i) получить код символа в заданной позиции в исходной строке.

Вы также можете написать var hexval = chr.charCodeAt(0) чтобы получить код символа одного символа в chr строка.

Другие вопросы по тегам