Как в массиве объектов неизвестной вложенности сменить всем свойство?
Как возможно в массиве объектов неизвестной вложенности поменять всем свойство isChange на true? (вложенность по такой же схеме может быть какая угодно)
const items = [
{
title: 'Production',
id: 1,
isChange: false,
subTasks: [
{
title: 'Production 1',
id: 2,
isChange: false,
subTasks: [{ title: 'Production 1 - 1', id: 3, isChange: false, subTasks: [] }, { title: 'Production 1 - 2', id: 4, isChange: false, subTasks: [] }],
},
],
},
{
title: 'News',
id: 5,
isChange: true,
subTasks: [{ title: 'News 1 - 1', id: 6, isChange: false, subTasks: [] }]
}
]
Буду очень благодарен за помощь!
Ответы (1 шт):
Автор решения: Danil Apsadikov
→ Ссылка
const items = [{
title: 'Production',
id: 1,
isChange: false,
subTasks: [{
title: 'Production 1',
id: 2,
isChange: false,
subTasks: [{
title: 'Production 1 - 1',
id: 3,
isChange: false,
subTasks: []
}, {
title: 'Production 1 - 2',
id: 4,
isChange: false,
subTasks: []
}],
}, ],
},
{
title: 'News',
id: 5,
isChange: true,
subTasks: [{
title: 'News 1 - 1',
id: 6,
isChange: false,
subTasks: []
}]
}
];
function change(tasks) {
tasks.forEach(task => {
task.isChange = true;
if (task.subTasks.length !== 0) {
change(task.subTasks);
}
})
}
change(items);
console.log(items);