0
votes

Comment boucler à travers un tableau d'objets, boucle à travers chaque objet et pousser chaque objet dans des matrices séparées pour la boucle NGFOR en angulaire

Je travaille sur un projet angulaire 7 et je traite une API qui renvoie une gamme d'objets (recettes) à la recherche et je souhaite obtenir tous les ingrédients de chaque objet afin que je puisse vous en protéger, obtenir seulement quoi Je veux parce que chaque objet (recette) varie de l'autre

J'ai essayé de boucler à travers la matrice initiale d'objets, puis bouclez à chaque objet individuel et à obtenir uniquement les ingrédients disponibles par objet (recette), mais je ne sais pas comment poussez-les dans des matrices séparées. Chaque fois que j'appuie, tous les ingrédients de tous les objets sont poussés dans un seul tableau. xxx

J'ai pu boucler et obtenir chaque ingrédient de chaque objet (recette) mais ont été incapables de les pousser dans des tableaux séparés sans avoir à définir plusieurs tableaux. Existe-t-il une façon de repousser tous les ingrédients d'un objet (recette) dans une matrice distincte sans avoir d'autres ingrédients d'un autre objet (recettes) ajouté? Je ne veux pas définir plusieurs tableaux car je travaille avec une API et je ne connais pas les résultats de la recherche attendus tout le temps Résultats de la recherche montrant un tableau d'objets


2 commentaires

Pouvez-vous partager la structure de données de résultat de la recherche ou partager un résultat d'échantillon au format JSON?


Trop long mais pouvez-vous vérifier ce lien -> i.stact.imgur.com/s6iwu.png < / a>


3 Réponses :


0
votes

juste pousser obj, pas y [obj]. Probablement, je ne comprends pas la tâche. Et utiliser au lieu d'entrer dans. Ou voulez-vous obtenir des sous-chaînes d'ingrédient de l'objet?


5 commentaires

poussant obj au lieu de y [obj] fait la même chose. J'essaie de pousser tous les ingrédients pour la recette A dans un tableau, puis poussez tous les ingrédients de la recette B dans un tableau sans avoir à déclarer deux tableaux distincts


D'accord, où créez-vous le deuxième tableau dans votre code? Vous poussez chaque recette à un membre de la classe. À propos de quel second tableau parle-t-il?


Je n'ai qu'un seul tableau parce que je travaille avec une API et je ne sais pas combien d'objets chaque recherche apportera pour que je me demandais si je peux continuer à utiliser ce même tableau encore et encore


Que diriez-vous de la matrice de deux dimensions ou de la carte? Chaque recherche réussie ajoutera une sous-réseau de vos données au tableau de classe.


S'il vous plaît comment puis-je y aller?



0
votes
for(let y of resultsarray){
     ingrSub: Array<any> = new Array();
      for(let obj in y){ 
        if(obj.includes('strIngredient')){ 
          if(y[obj]!=null){ 
            if(y[obj].length > 0){ 
              ingrSub.push(y[obj])  
              console.log(this.ingArray) 
            }
          }
        }
      }
    if(ingrSub.length > 0)
          this.ingArray.push(ingrSub)
    else
       ingrSub = null;//just to be sure that we do not leak the memory if engine thinks the oposite in some case

    }

3 commentaires

Merci mais utiliser un NGFOR affiche toujours tous les ingrédients et non à chaque ingrédient de la recette


Mais s'il vous plaît pouvez-vous expliquer ce que INGRSUB: tableau = nouveau tableau () fait?


Bien sûr, il déclare un nouvel objet de tableau local, mais pas comme membre de classe. Ensuite, vous remplissez ce tableau avec vos valeurs et ajoutez la référence de cette matrice au tableau des membres de la classe.



0
votes

    this.array_a = [] <- this add your array

this.array_b.forEach(array_b_item => {
  array_b_item.new_variable = JSON.parse(
    JSON.stringify(this.array_a)
  ); 
});

you can add values indivualy to array_b


0 commentaires