l'éditeur php Youzi vous présentera comment supprimer les données d'interface en double{} dans l'{}interface. Au cours du processus de développement, nous rencontrons souvent des situations dans lesquelles nous devons supprimer les données en double. Les données en double affectent non seulement les performances du système, mais causent également des problèmes aux utilisateurs. Afin de résoudre ce problème, nous pouvons utiliser certaines techniques et méthodes pour détecter et supprimer les données d'interface en double, améliorant ainsi l'efficacité du système et l'expérience utilisateur. Ensuite, nous vous donnerons les détails sur la façon d’y parvenir.
Comment supprimer les entrées d'interface{} en double des données []interface{}.
"data": [ { "signstatus": true, "username": "yash90" }, { "signstatus": false, "username": "dhananjay" }, { "signstatus": true, "username": "yash90" } ],
Actuellement, j'ai les données ci-dessus et je souhaite supprimer les entrées en double pour le même nom d'utilisateur. Alors, de quel type de logique ai-je besoin dans la fonction ci-dessous.
func removeduplicateentries(listofusernamesandsignstatus []interface{}) []interface{} { updatedlistofusernamesandsignstatus := make([]interface{}, 0) for _, value := range listofusernamesandsignstatus { if value != nil { updatedlistofusernamesandsignstatus = append(updatedlistofusernamesandsignstatus, value) } } return updatedlistofusernamesandsignstatus }
Une idée de comment faire ça ?
Je m'attends à ce que le résultat soit le suivant :
"data": [ { "signstatus": true, "username": "Yash90" }, { "signstatus": false, "username": "Dhananjay" }, ],
Tout d'abord, je pense que dans ce cas précis, utilisez []interface{}
作为输入是一个坏主意。正确的输入应该是 []*entry
avec
type entry struct { username string `json:"username"` signstatus bool `json:"signstatus"` }
ou du moins map[string]interface{}
.
Mais si []interface{}
est un incontournable, alors voici la solution.
func removeDuplicateEntries(entries []interface{}) []interface{} { uniqueEntries := make([]interface{}, 0) usernameMap := make(map[string]bool) for _, entry := range entries { entryCast, ok := entry.(map[string]interface{}) if !ok { continue } username := entryCast["username"].(string) if usernameMap[username] { continue } usernameMap[username] = true uniqueEntries = append(uniqueEntries, entry) } return uniqueEntries }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!