editor php Youzi akan memperkenalkan kepada anda cara memadamkan data antara muka pendua{} dalam {}antara muka. Semasa proses pembangunan, kami sering menghadapi situasi di mana kami perlu memadamkan data pendua. Data pendua bukan sahaja menjejaskan prestasi sistem, tetapi juga menyebabkan masalah kepada pengguna. Untuk menyelesaikan masalah ini, kami boleh menggunakan beberapa teknik dan kaedah untuk mengesan dan memadam data antara muka pendua, dengan itu meningkatkan kecekapan sistem dan pengalaman pengguna. Seterusnya, kami akan memberikan anda butiran tentang cara untuk mencapai ini.
Cara untuk mengalih keluar masukan antara muka pendua{} daripada data []antara muka{}.
"data": [ { "signstatus": true, "username": "yash90" }, { "signstatus": false, "username": "dhananjay" }, { "signstatus": true, "username": "yash90" } ],
Pada masa ini, saya mempunyai data di atas dan saya ingin mengalih keluar masukan pendua untuk nama pengguna yang sama. Jadi apakah jenis logik yang saya perlukan dalam fungsi di bawah.
func removeduplicateentries(listofusernamesandsignstatus []interface{}) []interface{} { updatedlistofusernamesandsignstatus := make([]interface{}, 0) for _, value := range listofusernamesandsignstatus { if value != nil { updatedlistofusernamesandsignstatus = append(updatedlistofusernamesandsignstatus, value) } } return updatedlistofusernamesandsignstatus }
Ada idea bagaimana untuk melakukan ini?
Saya jangkakan hasilnya harus seperti berikut:
"data": [ { "signstatus": true, "username": "Yash90" }, { "signstatus": false, "username": "Dhananjay" }, ],
Pertama sekali, saya rasa dalam kes khusus ini gunakan []interface{}
作为输入是一个坏主意。正确的输入应该是 []*entry
dengan
type entry struct { username string `json:"username"` signstatus bool `json:"signstatus"` }
atau sekurang-kurangnya map[string]interface{}
.
Tetapi jika []interface{}
adalah satu kemestian, maka inilah penyelesaiannya.
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 }
Atas ialah kandungan terperinci Cara memadamkan data antara muka pendua dalam {}antara muka{}. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!