1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/songjinyang-everyday

 / Детали:

Задача 34

Предстоит сделать
Владелец
Создано  
27.04.2025
      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)

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/songjinyang-everyday.git
git@api.gitlife.ru:oschina-mirror/songjinyang-everyday.git
oschina-mirror
songjinyang-everyday
songjinyang-everyday