Back to tasksGet help with live coding in real time with Sobes Copilot
Junior — Senior
23
Обновление свойства объекта в массиве произвольной вложенности
Task condition
Дан массив, содержащий объекты, которые могут иметь вложенные массивы с аналогичными объектами. Глубина вложения не ограничена. Каждый объект обладает полями 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. Если такой объект отсутствует, массив остаётся без изменений.