0
votes

Quel est le moyen récursif d'imprimer ceci si je ne connais pas la profondeur de la matrice de catégorie

Quels sont les moyens d'imprimer ce code si je ne connais pas la profondeur d'objet de catégorie? Comment cartographier cela pour obtenir une catégorie récursive sous catégorie avec des circonstances différentes? XXX


1 commentaires

En fait, vous ne retournez pas quelque chose de sens complet avec la cartographie ...?


3 Réponses :


1
votes

Vous pouvez utiliser le même rappel pour chaque catégorie imbriquée.

p>

.as-console-wrapper { max-height: 100% !important; top: 0; }


0 commentaires

1
votes

Utilisez simplement une fonction récursive régulière, si la catégorie n'existe pas ou qu'il est vide, il suffit de revenir.

p>

const category = [{
    "id": 8,
    "name": "Genere",
    "parent": null,
    "category": []
  },
  {
    "id": 1,
    "name": "Movies",
    "parent": null,
    "category": [{
        "id": 2,
        "name": "Bollywood",
        "parent": 1,
        "category": []
      },
      {
        "id": 3,
        "name": "Hollywood",
        "parent": 1,
        "category": []
      }
    ]
  },
  {
    "id": 9,
    "name": "Region",
    "parent": null,
    "category": []
  },
  {
    "id": 4,
    "name": "Songs",
    "parent": null,
    "category": [{
        "id": 7,
        "name": "Bollywood",
        "parent": 4,
        "category": [{
            "id": 10,
            "name": "Arijit singh",
            "parent": 7,
            "category": []
          },
          {
            "id": 11,
            "name": "Sonu Nigam",
            "parent": 7,
            "category": []
          }
        ]
      },
      {
        "id": 6,
        "name": "English",
        "parent": 4,
        "category": []
      },
      {
        "id": 5,
        "name": "Hindi",
        "parent": 4,
        "category": []
      }
    ]
  }
]

function recursiveLoop(array) {
  if (!array) return;
  array.forEach(item => {
    console.log(item.name);
    recursiveLoop(item.category)
  })
}

recursiveLoop(category);


0 commentaires

2
votes
const printCategory = (c, i) => {
   console.log(c.name + " ------> "  + i)
   c.category.map(printCategory);
}
category.map(printCategory);

0 commentaires