Я использую подстроку переменной, чтобы определить, как разрезать строку. Строка сама по себе состоит из четырех символов и имеет прикрепленный номер. i.e «doop0»/«doop1» и т. д. Я пытаюсь использовать длину строк для определения того, нужно ли больше срезать. Например, если строка становится «doop10» срезает «10» и parseInt. но я получаю NaN возвращается, и я не знаю, почему! код у меня выглядит следующим образом:Использование длины подстроки для определения того, как сплайсировать возвращаемое не-число
var num;
var numberCount = -1;
var nameCount = 5;
socket.on('Balls', function(msg)
{
console.log("Minus: "+parseInt(msg.Name.Length) - nameCount);
if(msg.Name.length == nameCount)
{
num = parseInt(msg.Name.slice(numberCount));
}
if(msg.Name.Length > nameCount)
{
console.log("Minus: "+msg.Name.Length - nameCount);
numberCount- (msg.Name.Length - nameCount);
nameCount+ (msg.Name.Length - nameCount);
num = parseInt(msg.Name.slice(numberCount));
}
Начальная, если заявление будет смотреть на ГЗС и отрезает соответствующую информацию. Второе, если заявление будет проверять, если длина увеличилась т.е. «doop9» стал «doop10» или ушла в 100-х
numberCount- (msg.Name.Length - nameCount);
увеличит количество отсечь Строка
nameCount+ (msg.Name.Length - nameCount);
будет ли увеличить количество имен, так что будет в первом случае оператор
num = parseInt(msg.Name.slice(numberCount));
получает этот экземпляр. Есть ли причина, по которой возникает ошибка NaN?
Можете ли вы привести пример того, что 'object' выглядит? По умолчанию свойство length в Strings не заглавное, поэтому, если вы не создали свое собственное свойство, это может быть проблемой. –
Почему бы просто не использовать регулярное выражение для получения номера? 'doop10'.replace (/ [^ 0-9.]/g, ''); // 10 ' – shennan
Я ошибался, я использовал капитал :( –