Показать сообщение отдельно
  #10 (permalink)  
Старый 13.11.2018, 20:59
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

Сообщение от Poznakomlus Посмотреть сообщение
<script>
const graph = {
    value: 65,
    children: [{
        value: 15,
        children: [{
            value: 55,
            children: [{
                value: 85,
                children: [{
                    value: 66,
                    children: [{
                        value: 29
                    }, {
                        value: 1
                    }]
                }, {value: 888}]
            }]
        }]
    }]
};

const foo = data => {
    let arr = [data.value]
    while (data.children) {
        data = data.children.pop();
        arr.push(data.value)
    }
    return `Min: ${Math.min(...arr)}, Max: ${Math.max(...arr)}`
}

document.write(foo(graph))
</script>

циклом while можно заменить любую рекурсию
вот и спрашивается зачем здесь map(), reduce()?
не сразу понял как тут без рекурсии обошлось )
этот цикл не заходит в чилды элементов, которые сами по себе не последние чилды.
чуть поменял данные, можно увидеть баг - минимум неверный
Ответить с цитированием