Есть строка:
var stroka = "ДелимСловаНаЧасти"
Мы хотим разделить слова в этой строке по принципу заглавной буквы. Как это сделать?
Способ № 1- при помощи массивов
// Делаем из строки массив var massiv = [...stroka] // Добавляем пробелы перед заглавными буквами. Не трогаем первую букву (оставляем как есть). var massiv2 = massiv.map(i => { if(x==0 && i.toUpperCase() == i){x++; return i} else if(i.toUpperCase() == i){return " " + i} else{return i} }, x=0) // Склеиваем элементы нового массива в строку var stroka2 = massiv2.join("")
Результат выполнения алгоритма:

Мы разделили слипшуюся последовательность слов на отдельные слова с пробелами. Первая заглавная буква в итоговой строке осталась без изменений — перед ней нет пробела.
Функция, разделяющая строку по заглавным буквам, добавляя пробелы перед заглавными буквами, кроме первой заглавной
function delimstroku (str){ return [...str] .map(i=>{ if(x==0&&i.toUpperCase()==i){x++; return i} else if(i.toUpperCase()==i){return " " + i} else{return i} }, x=0) .join("") }

Получаем строку:
"Делим Слова На Части"
Функция, разделяющая строку по заглавным буквам, добавляя пробелы перед заглавными буквами и уменьшая их регистр, кроме первой
function delimstroku (str){ return [...str] .map(i=>{ if(x==0&&i.toUpperCase()==i){x++; return i.toUpperCase()} else if(i.toUpperCase()==i){return " " + i.toLowerCase()} else{return i} }, x=0) .join("") }

Получаем строку:
"Делим слова на части"
Информационные ссылки
Стандарт ECMAScript — Раздел «23.1 Array Objects» — https://tc39.es/ecma262/#sec-array-objects