#javascript
#javascript
Вопрос:
Код :
str = String.fromCharCode(2000000000000000000000000)
Хорошо, str
на самом деле = ""
. Но str.length = 1.
Что я должен сделать, чтобы получить реальную длину?
Любая помощь может быть высоко оценена!!!!
Комментарии:
1. Определите «реальную длину». Если вы хотите избежать подсчета символов с кодом 0, вы можете
[].filter.call(str, function(item){return item.charCodeAt(0)}).length
.2. Спасибо за ваше решение, @YuryTarabanko. Вы можете написать ответ на это.
Ответ №1:
Ваш оператор не может преобразовать этот символьный код в символ, поэтому он возвращает нулевой символ, ваша str
переменная представляет собой один символ с charcode 0
.
str = String.fromCharCode(2000000000000000000000000)
""
str.length
1
str.charCodeAt(0) // First char
0
str.charCodeAt(1) // Non-existant char for reference
NaN
Комментарии:
1. Итак, как я могу заставить его возвращать 0 в этом случае?
2. @user3698272 Вы не можете, потому что его длина равна не 0, а 1. Вы могли бы сделать
if( str === String.fromCharCode(0) ) { str = ""; }
, чтобы очистить нулевой символ.