Показать сообщение отдельно
  #7 (permalink)  
Старый 13.11.2018, 17:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от Epitough
с помощью map(), reduce().
<script>
const graph = {
    value: 65, children: [{
        value: 15,
        children: [{
            value: 55,
            children: [{
                value: 85,
                children: [{
                    value: 66,
                    children: [{ value: 29 }, { value: 21 }]
                }]
            }]
        }]
    }]
};
let example = foo(graph);

function foo(elem) {
        let obj = {
                max: elem.value,
                min: elem.value
        };
        if (elem.children) {
                elem.children.map(foo).reduce(
                        function(obj,o) {
                                obj.max = Math.max(obj.max, o.max);
                                obj.min = Math.min(obj.min, o.min);
                                return obj
                        }, obj

                );

        }
        return obj;
}

document.write(JSON.stringify(example))


    </script>
Ответить с цитированием