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