Как корректно обработать ошибку # IndexError: string index out of range?

  • 7 сентября 2023 г. 15:26
Ответы на вопрос 2
Привет! Конечно, вот пример несложной задачи на JavaScript, в которой работа со строками:

Задача: Напишите функцию, которая принимает на вход строку, и возвращает новую строку, в которой все гласные буквы заменены на символ "*".

```javascript
function replaceVowels(str) {
  // Создаем массив гласных букв
  const vowels = ['a', 'e', 'i', 'o', 'u'];

  // Преобразуем строку в массив символов
  const chars = str.split('');

  // Заменяем гласные буквы на символ "*"
  const replacedChars = chars.map((char) => {
    if (vowels.includes(char.toLowerCase())) {
      return '*';
    }
    return char;
  });

  // Преобразуем массив символов обратно в строку
  const replacedString = replacedChars.join('');

  return replacedString;
}

// Пример использования функции
const inputString = "Hello World!";
const result = replaceVowels(inputString);
console.log(result);
```

Результат выполнения кода будет:

```
H*ll* W*rld!
```

Функция `replaceVowels(str)` принимает на вход строку `str`, разбивает ее на массив символов, заменяет все гласные буквы на символ "*", а затем возвращает новую строку, собранную из измененных символов.

Надеюсь, этот пример поможет вам лучше понять работу со строками в JavaScript!
Не перебирать в цикле строку до конца, а только до предпоследнего символа. Если нужно обработать последний символ отдельно, то это можно сделать после цикла.
Хранить последний увиденный символ в переменной. В процессе прохода по строке есть два варианта:
а) Текущий символ совпадает с последним увиденным. Увеличить счетчик повторов на 1.
б) Текущий символ отличается. Записать значение счетчика в выходную строку, сбросить счетчик в 1 и обновить последний символ.
Правильно изначально не привести к возможности появления такой ошибки. Например, можно использовать функцию pairwise для обхода строки, чтобы избежать использования индексов.
Похожие вопросы