Partage
  • Partager sur Facebook
  • Partager sur Twitter

Swift - Réorganisation d'un tableau ayant doublons

Sujet résolu
    17 février 2020 à 23:11:17

    Bonjour,

    Dans le cadre du développement d'une app IOS, je dois récupérer une liste d'aliments depuis une API, cependant le tableau retourné comporte des doublons, voici un exemple de ce que je reçois: 

    [
        {
            "wording": "carottes",
            "dates": "16/02/20"
        },
        {
            "wording": "carottes",
            "dates": "26/02/20"
        },
        {
            "wording": "carottes",
            "dates": "26/02/20"
        },
        {
            "wording": "haricots",
            "dates": "15/02/20"
        },
        {
            "wording": "haricots",
            "dates": "28/02/20"
        }
    ]

    Mon but étant depuis mon code swift de supprimer les doublons et de rassembler les dates dans un tableau pour chaque élément, voici le code que j'ai actuellement qui ne fait pas exactement ce que je veux.. :

    // remplissage du tableau temporaire avec les données récupérées en BDD
                    if let foodArray = resultFood
                    {
                        var temp2: [Food] = []
                        self.allFood = []
                        
                        for foodItem in foodArray {
                            
                            if(temp2.isEmpty == true) // insertion du premier élément du tableau récupéré en base de données
                            {
                                var temp: [String] = []
                                temp.append(foodItem.dates)
                                temp2.append(Food(foodItem.wording, temp))
                            }
                            
                            for foodItemTemp in temp2 {
                                if(foodItem.wording == foodItemTemp.title)
                                {
                                    foodItemTemp.dates.append(foodItem.dates)
                                } else {
                                    var temp: [String] = []
                                    temp.append(foodItem.dates)
                                    
                                    temp2.append(Food(foodItem.wordingtemp))
                                }
                                
                            }
                            
                        
                        }
                        
    
                        for item in temp2 {
                            print("\(item.title) | \(item.dates)")
                        }
                        
                        print("----------------------------------------------------")
                        self.allFood = temp2
                        
                        
                        self.finalFood = self.allFood
                        self.tableView.reloadData()
                    }


    Et voici ce que j'obtient :

    carottes | ["16/02/20", "26/02/20", "26/02/20"]
    carottes | ["26/02/20", "26/02/20"]
    carottes | ["26/02/20"]
    haricots | ["15/02/20", "28/02/20"]
    haricots | ["15/02/20", "28/02/20"]
    haricots | ["15/02/20", "28/02/20"]
    haricots | ["15/02/20", "28/02/20"]
    haricots | ["28/02/20"]
    haricots | ["28/02/20"]
    haricots | ["28/02/20"]
    haricots | ["28/02/20"]
    ----------------------------------------------------

    Et ce que je souhaiterais obtenir: 

    carottes | ["16/02/20", "26/02/20", "26/02/20"]
    haricots | ["15/02/20", "28/02/20"]
    ----------------------------------------------------


    Merci beaucoup! :)

    -
    Edité par tone5846 17 février 2020 à 23:14:29

    • Partager sur Facebook
    • Partager sur Twitter
      20 février 2020 à 11:41:18

      Finalement j'ai fait ce que je voulais directement avec une requête SQL
      • Partager sur Facebook
      • Partager sur Twitter

      Swift - Réorganisation d'un tableau ayant doublons

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown