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

本文介绍了一种在角色管理的建筑列表中去除重复项的方法。通过使用map和切片,确保了即使用户拥有多个角色,同一建筑也只会被列出一次,提高了数据处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值