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