记录开发中遇到的问题之~如何去掉数组中的重复元素

   最近,在做一个根据角色展示所属的建筑列表,因为某个用户可以同时有多个角色,而每个角色又可以分别管理不同的建筑,所以在实际开发中出现,一个用户登录之后,会根据角色来展示一个建筑列表,所以就会出现重复的建筑出现,所以需要对结果数组进行去重.

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里面查,如果有值我们就不放到新切片中去,没有 就放进去,这样就可以达到去重的效果.

猜你喜欢

转载自blog.csdn.net/FindHuni/article/details/106261841