Обновление значений Javascript во вложенном объекте по пути к массиву

Gusti спросил: 03 ноября 2018 в 09:00 в: javascript

Учитывая вложенный объект:

{
    name: 'UK',
    toggled: false,
    active: false,
    children: [{
            name: 'Region 1',
            active: false,
            toggled: false,
            children: [{
                    name: 'Heathrow T1',
                    toggled: false,
                    active: false,
                    children: []
                },
                {
                    name: 'HTT',
                    toggled: false,
                    active: false,
                    children: []
                },
            ]
        },
        {
            name: 'Region 2',
            active: false,
            toggled: false,
            children: [{
                name: Gatwick North,
                active: false,
                toggled: false,
                children: []
            }]
        }
    ]
}

и указанный путь

['UK', 'Region 2', 'Gatwick North']

, как мне удается добавлять активные / переключаемые свойства Значение true для пути во вложенном объекте, соответствующем вышеуказанному массиву.

Вывод должен быть следующим:

{
    name: 'UK',
    toggled: true,
    active: true,
    children: [{
            name: 'Region 1',
            active: false,
            toggled: false,
            children: [{
                    name: 'Heathrow T1',
                    toggled: false,
                    active: false,
                    children: []
                },
                {
                    name: 'HTT',
                    toggled: false,
                    active: false,
                    children: []
                },
            ]
        },
        {
            name: 'Region 2',
            active: true,
            toggled: true,
            children: [{
                name: 'Gatwick North',
                active: true,
                toggled: true,
                children: []
            }]
        }
    ]
}

Я пытался реализовать это с помощью рекурсии пока безуспешно. Я искал вопросы, и ни один из них не соответствовал моей нынешней ситуации.

0 ответов