Показать сообщение отдельно
  #1 (permalink)  
Старый 17.12.2022, 21:20
Новичок на форуме
Отправить личное сообщение для Spily Посмотреть профиль Найти все сообщения от Spily
 
Регистрация: 05.12.2022
Сообщений: 4

Проблема в строке с методом replace()
Добрый день! Подскажите пожалуйста, как решить данную проблему.
Есть функция, которая берёт строку и изменяет регистр каждой буквы. (Например: Gap, gAp, gaP) И потом возвращает массив этих строк. Проблема в том, что replace() оказывается заменяет только первое совпадение. Из-за этого например, вызов ф-ции со строкой 'Hello' возвращает неправильный массив. Потому что каждый раз меняется только первая буква " l ". Скажите пожалуйста, как можно исправить это.

function wave(str) {
    let symbol, slice, waveArray = [];
    waveArray.push(str);
    for (let i = 1; i < str.length; i++) {
        str = str.toLowerCase();
        symbol = str.charAt(i);
        slice = str.slice(i, (i + 1)).toUpperCase();
        str = str.replace(symbol, slice);
        waveArray.push(str);
    }
    return waveArray;
}
console.log(wave('Hello'));
Ответить с цитированием