#javascript #formatter
Вопрос:
Я создаю форматер номера телефона, и все работает, кроме этой части. Ошибка, с которой я сталкиваюсь, заключается в следующем: «Ошибка типа: Не удается прочитать свойство ‘indexOf’ неопределенного». Я попытался использовать .includes(‘1’,0) вместо этого, но это тоже не сработало.
// If cleanNumber has a country code(1), remove it
if((cleanNumber.indexOf("1")) = 0){
cleanNumber = cleanNumber.substring(1); //removes first character = "1"
activeSheet.getRange(i,3).setValue(cleanNumber);
Logger.log("Country code removed: " cleanNumber);
}
Комментарии:
1. используйте
startWith
, когда вы хотите проверить строку. Также ваша переменнаяcleanNumber
являетсяundefined
, а не строкой.2. @Sysix Это также доступно для строк!
3. Когда вы видите такое сообщение об ошибке, то попытка использовать другой метод, подобный
includes
этому, является неправильной реакцией. Сначала прочитайте и поймите сообщение об ошибке, затем отладьте и проверьте, почемуcleanNumber
оно не определено.4. @JoakimL. Кристиансен спасибо обновлено
5. Используя startWith, это лучший вариант, вы также можете использовать необязательную цепочку , чтобы избежать ошибки «невозможно прочитать свойство undefined», как это:
if(cleanNumber?.startsWith("1"))
Ответ №1:
=
является оператором присваивания.
==
является оператором сравнения.
Используйте ==
вместо этого.
if ((cleanNumber.indexOf("1")) == 0) {
cleanNumber = cleanNumber.substring(1); //removes first character = "1"
activeSheet.getRange(i, 3).setValue(cleanNumber);
Logger.log("Country code removed: " cleanNumber);
}
Комментарии:
1. Спасибо, это сработало!! Я ценю вашу помощь.