получилось реализовать только через promise но этот вариант мне не подходит
можно с async await
Давай-ка ты, дружочек, определишься - подходит или нет. Потому что async/await - это тоже promise. Или ты об этом не знал? Ну так иди документацию почитай, разберись.
Возвращаясь к предыдущему вашему комментарию, "просто с переменной которая содержит одну строку" - так оно и есть, функция has_consecutive_characters принимает первым параметром (s) строку, в которой ищутся одинаковые символы, расположенные последовательно (второй параметр, count - наличие какого количества повторений надо проверить).
Антон, встречный вопрос - что принимает функция has_consecutive_characters в качестве первого параметра? Если ответ "не знаю", тогда вопрос другой - вы вообще в показанном коде хоть что-то поняли (кроме того, что имеет место быть создание массива)?
Неубедительно, брехня это. Значит, надо было получить родительский элемент родительского - гуглится получение родительского, затем операция выполняется дважды. Не умеете до двух считать? Или, если подумать ещё немного, можно было догадаться погуглить, как получить предка, зная его класс.
Меняйте ещё, опять говнокод получился. Во-первых, выходной формат не соответствует тому, что, по вашим же словам, вам было нужно. Во-вторых, входной формат не указан, значение не соответствует ни одному из ожидаемых форматов - значит, для парсинга будет применён Date, так что опять работать будет не во всех браузерах.
Враньё, не получилось - применение new Date не позволит получить '31.12.2021' из '12-31-2021'. Кстати, firefox, например, такую строку распарсить не сможет, будет Invalid Date.
Вы спросили, как рекурсивно обойти вложенные объекты/массивы, изменяя значения в объектах, если ключ соответствует заданному условию. Я показал как. Всё. А сейчас вы спрашиваете, как выполнить замену в строке - это не имеет ни малейшего отношения к исходному вопросу.