Почему появляется ошибка reading 'toUpperCase'?

Подскажите, пожалуйста, что делаю не так.

Задание:
Реализуйте функцию convertText(), которая принимает на вход строку и, если первая буква не заглавная, возвращает перевернутый вариант исходной строки. Если первая буква заглавная, то строка возвращается без изменений. Если на вход передана пустая строка, функция должна вернуть пустую строку.

import reverse from './reverse';

const convertText = (string) => {

  if (string[0] === '') {
    return ''
  }

  if (string[0] === string[0].toUpperCase()) {
    return string
  }
  else if (string[0] !== string[0].toUpperCase()) {
    return reverse(string)
  }
    else {
      return ''
    }
};

export default convertText;
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ответы на вопрос 2
AgentSmith72
@AgentSmith72
JS - это моё хобби
Раз попробуешь тернарные операторы и уже не сможешь от них отказаться)

const convertText = (string) => {
    return !string ? '' : (string[0] === string[0].toUpperCase() ? string : string.split('').reverse().join(''));
};
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const isLetter = (c) => {
  if (c === '_' || c === '$') {
    return false;
  }
  try {
    eval(`let ${c};`);
    return true;
  } catch (e) {
    return false;
  }
}

const isUpperCase = (c) => c === c.toUpperCase();

const convertText = (string) => {
  for (let i = 0; i < string.length; i += 1) {
    if (isLetter(string[i])) {
      return isUpperCase(string[i]) ? string : reverse(string);
    }
  }
  return reverse(string);
}


С современными регулярками вспомогательные функции меняются на
const isLetter = (c) => /\p{L}/u.test(c);

const isUpperCase = (c) => /\p{Lu}/u.test(c);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы