Лишний Undefined

В случайной строке первую букву каждого слова нужно сделать заглавной. Проблема в том, что в конце результата появляется Undefined, никак не пойму откуда.

Вот код:

let str2 = 'самая случайная строка';
let res2 = '';

for (let i = 0; i <= str2.length; i++) {
	if (i === 0 || str2[i - 1] === ' ') {
		res2 += str2[i].toUpperCase();
	} else {
		res2 += str2[i];
	}
}

console.log(`${str2} |to| ${res2}`);


Ответы (1 шт):

Автор решения: Alexander Lonberg

Это можно описать одной строкой

function firstUpperCase(str) {
  // найдет первый символ в начале каждого слова
  return str.replace(/(?<=(^|\s))(.)/g, (s) => s.toUpperCase())
}

let str = `самая случайная строка
с переносом`
console.log(firstUpperCase(str))

→ Ссылка