Как получить реальную длину строки?

#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 = ""; } , чтобы очистить нулевой символ.