У меня есть функция, в которой я перебираю заданную строку, чередуя заглавные буквы каждого символа и конкатенируя его в переменную alt
.
Для правильного прохождения этого цикла я удалил пробелы изоригинальная строка.Но мне нужно добавить их обратно в конец функции.
function alternatingCaps(str) { // 'hello world'
let words = str.toLowerCase().split(' '); // ['hello','world']
str = words.join(''); // 'helloworld'
let alt = '';
for(let i = 0; i < str.length; i++) {
if(i % 2 === 0)
alt += str[i].toUpperCase();
else
alt += str[i].toLowerCase();
}
return alt;
}
console.log(alternatingCaps('hello world'));
/* Output: "HeLlOwOrLd"
Wanted output: "HeLlO wOrLd" */
Как только alt
содержит строку, включенную в качестве значения в массив words
, я хочу добавить пробел в концеслова.
Вот моя попытка:
words.forEach(function(word) {
if(alt.toLowerCase().includes(word) && word[word.length - 1] === alt[i].toLowerCase())
alt += ' ';
});
Проверяется, присутствуют ли какие-либо слова из массива words
в строке alt
и является ли текущий символитерация строки соответствует последней букве в слове.Если это так, он добавляет пробел к строке.
Но это не работает должным образом.
> Output: "HeLlO wOr Ld"
> Wanted output: "HeLlO wOrLd"
Я также думаю, что это может вызвать проблемы с дублирующимися буквами.Как я могу достичь своей цели?