Слияние кода завершено, страница обновится автоматически
const obj = {
title: 'linux',
expand: true,
children: [
{
title: 'test1', children: [
{ title: 'тест11. py', path: 'test11. py', checked: false },
{ title: 'тест12. py', path: 'test12. py', checked: false }
]
},
{
title: 'test2', children: [
{ title: 'тест21. py', path: 'test21. py', checked: false },
{ title: 'тест22. py', path: 'test22. py', checked: false }
]
},
{
title: 'тест3. py', path: 'test3. py', children: [
{ title: 'тест31', path: 'test31. py', checked: false },
{ title: 'тест32', path: 'test32. py', checked: false },
{
title: 'тест33', children: [
{ title: 'тест331', path: 'test331. py', checked: false },
{
title: 'тест332', path: 'test332. py', children: [
{ title: 'тест3321', path: 'test3321. py', checked: false },
{ title: 'тест3322', path: 'test3322. py', checked: false },
]
},
]
}
]
},
{ title: 'тест4. py', path: 'test4. py', checked: false },
{ title: 'тест5. py', path: 'test5. py', checked: false },
{ title: 'тест6. py', path: 'test6. py', checked: false },
{ title: 'тест7. py', path: 'test7. py', checked: false },
{ title: 'тест8. py', path: 'test8. py', checked: false }
]
}
// Преобразование в arr и вывод результата
let arr = []
function get(cc) {
for (let item of cc) {
delete item.checked
if (item.children) {
get(item.children, arr)
} else {
arr.push(item)
}
}
``` }
}
get(obj)
```children) // В рекурсии нет return, поэтому массив arr недоступен внутри. Приходится определять его снаружи.
console.log(arr)
// let arr = []
// for (let i1 of obj.children) {
// if (i1.children) {
// for (let i2 of i1.children) {
// if (i2.children) {
// for (let i3 of i2.children) {
// if (i3.children) {
// for (let i4 of i3.children) {
// arr.push(i4)
// }
// } else {
// arr.push(i3)
// }
// }
// } else {
// arr.push(i2)
// }
// }
// } else {
// arr.push(i1)
// }
// }
// for (let item of arr) {
// for (let i in item) {
// if (i == 'checked' || i == 'children') {
// delete item.checked
// // delete item.children
// }
// }
// }
// let cc = {a: 1, b: 2}
// for (let item in cc) {
// if (item == 'a') {
// delete cc.a // delete требует указания конкретного свойства, например a, а не item
// }
// }
// console.log(cc)