Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
24
Обновление свойства объекта в массиве произвольной вложенности
Условие задачи
Дан массив, содержащий объекты, которые могут иметь вложенные массивы с аналогичными объектами. Глубина вложения не ограничена. Каждый объект обладает полями name и label, которые могут встречаться на любой вложенной позиции. Необходимо написать функцию updateValue, которая будет искать объект с указанными значениями name и label и менять в нём значение указанного свойства.
const data = [
{
name: 'John',
label: 'Developer',
children: [
{
name: 'Jane',
label: 'Designer',
children: [
{
name: 'Jim',
label: 'Designer',
children: []
}
]
},
{
name: 'Jane',
label: 'Designer',
children: []
}
]
},
{
name: 'Alice',
label: 'Manager',
children: []
}
];
function updateValue(data, name, label, key, value) {
// ...
}
Функция должна рекурсивно обходить структуру, находить объект, у которого name и label совпадают с переданными аргументами, и присваивать полю key новое значение value. Если такой объект отсутствует, массив остаётся без изменений.