На входе строка, надо сделать что бы если в ней был камелКейс перед символом с камел кейсом добавлялся пробел. Помогите понять почему мой говнокод уходит в бесконечный цикл, или варианты решения задачи.
Example
"camelCasing" => "camel Casing"
"identifier" => "identifier"
"" => ""
function solution(string) { let arr = string.split("");
for (let i = 0; i < arr.length; i++) { if (arr[i] == arr[i].toUpperCase()) { arr.splice(i, 0, " "); } } console.log(arr.join("")); } solution("someTestToText");
Проблема вашего кода заключается в том, что вы добавляете пробел в массив символов, но не обновляете счетчик i, поэтому он остается на месте, и вы продолжаете вставлять пробелы в то же место бесконечное число раз, в результате чего ваш код "зацикливается".
Для решения этой задачи вам нужно обновлять значение i после каждого добавления пробела, чтобы пропустить только что добавленный пробел и не добавлять другой пробел перед тем же символом камелкейса.
Вот исправленный код, который решает эту задачу:
``` function solution(string) { let arr = string.split("");
for (let i = 0; i < arr.length; i++) { if (arr[i] == arr[i].toUpperCase()) { arr.splice(i, 0, " "); i++; // обновляем значение i, чтобы пропустить только что добавленный пробел } } console.log(arr.join("")); } solution("someTestToText"); ```
Выходные данные для "someTestToText" будут "some Test To Text".