記錄開發中遇到的問題之~如何去掉數組中的重複元素

   最近,在做一個根據角色展示所屬的建築列表,因爲某個用戶可以同時有多個角色,而每個角色又可以分別管理不同的建築,所以在實際開發中出現,一個用戶登錄之後,會根據角色來展示一個建築列表,所以就會出現重複的建築出現,所以需要對結果數組進行去重.

func ArrayDup(items []vo.VoBuilding) []vo.VoBuilding {
	result := make([]vo.VoBuilding, 0)
	temp := map[int64]interface{}{}
	for _, item := range items {
		buildingId := item.BuildingId
		value := temp[*buildingId]
		temp[*buildingId] = item
		if value == nil {
			result = append(result, item)
		}
	}
	return result
}

 基本思路:

     1.重新定義一個切片   

      2.定義一個map   

      3. 遍歷傳來的數組,從中獲取建築對應的id ,根據這個id去map裏面查,如果有值我們就不放到新切片中去,沒有 就放進去,這樣就可以達到去重的效果.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章