Swift之数组去重(去除重复元素)
- 在开发过程中,也许会遇到需要对数组进行去重的相关处理。如果数组内只含有基础类型的数据时,可以写两个for循环遍历,用下标取值做对比;当然也可以用集合Set(Swift),比较方便快捷。
- 如果需要对model数组进行去重,该怎么做呢?
import UIKitextension Array {// 去重func filterDuplicates<E: Equatable>(_ filter: (Element) -> E) -> [Element] {var result = [Element]()for value in self {let key = filter(value)if !result.map({filter($0)}).contains(key) {result.append(value)}}return result}
}
- filterDuplicates这个方法,这里直接写在Array的扩展里面,这样一个数组就可以随意调用这个方法了,相当的方便。
- 使用如下:
// 基础类型去重
let arrays = ["1", "2", "2", "3", "4", "4"]
let filterArrays = arrays.filterDuplicates({$0})
print(filterArrays)// model类的去重
let modelArrays = [Model("1"), Model("1"), Model("2"), Model("3")]
let filterModels = modelArrays.filterDuplicates({$0.name})
print(filterModels)
Swift之数组去重(去除重复元素)相关推荐
- 去除html重复的元素 js,js数组中去除重复值的几种方法
在日常开发中,我们可能会遇到将一个数组中里面的重复值去除,那么,我就将我自己所学习到的几种方法分享出来 去除数组重复值方法: 1,利用indexOf()方法去除 思路:创建一个新数组,然后循环要去重的 ...
- 去除数组中的重复元素
在一些场景中需要做到数组去重,下面从两种方法来介绍,一种是比较传统的,es6之前就已经出现的:另外一种是es6中的set()可以去除数组中的重复元素,下面我们列举出详细代码: 第一种方法:(index ...
- java删除有序数组中的重复元素_java去除已排序数组中的重复元素
题目描述 给定一个已排序的数组,去除数组中的重复元素,只保留一个重复的元素,并且返回新的数组长度. 要求: 不要给数组分配额外的空间,你必须使用常量的内存大小进行原地操作. 例如: 给出数组A=[1, ...
- php自动合并,php实现合并数组并去除重复的方法
php实现合并数组并去除重复的方法 发布时间:2020-08-12 10:35:05 来源:亿速云 阅读:99 作者:小新 这篇文章主要介绍了php实现合并数组并去除重复的方法,具有一定借鉴价值,需要 ...
- VB 删除数组中的重复元素
VB 删除数组中的重复元素,当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除.并且返回结果数组. 以下这个函数只支持一维数组. Function Array_unique(Arr As V ...
- 使用set集合去除重复元素
如何使用set集合去重 我们都知道,set集合是无序的,这样也导致set集合里面的元素是不能重复的,因为这一个特性,所以我们经常用set集合进行去重操作,我们下面以一个简单的例子说明set集合是如何进 ...
- python列表如何去除重复_python列表如何去除重复元素(转自先锋教程网)
python列表如何去除重复元素? 例子,python列表去重复. 复制代码代码示例: #第一种def delRepeat(liebiao): for x in liebiao: while lie ...
- php 合并去掉重复数组,php合并数组并去除重复
php合并数组并去除重复的实现方法:1.使用"array_merge"方法或者"+"符号实现合并数组:2.通过"array_unique"函 ...
- php如何合并重复项,php合并数组并去除重复
php合并数组并去除重复的实现方法:1.使用"array_merge"方法或者"+"符号实现合并数组:2.通过"array_unique"函 ...
最新文章
- ECCV 2020 | 腾讯优图8篇论文入选,涵盖目标跟踪、行人重识别、人脸识别等领域...
- 明细表如何添加重量_关于Revit中明细表标准的导出及导入
- 2005年最具钱途的人才:软件研发炙手可热
- 自己动手,刷一台迷你缓存服务器玩玩
- Flutter进阶第14篇:支付宝支付【下】
- LINUX下载编译libfaac
- 全国快递物流查询-快递查询接口-阿里云代码封装
- Linux系统打不开gedit文本编辑器
- 【数字电路抢救】2 逻辑函数的代数化简 3逻辑表达式的化简
- 公众号开发(三)----接收事件推送之关注/取消关注事件
- 基于ZooKeeper的分布式锁和队列
- 【Ubuntu18.04】移动固态硬盘安装ubuntu18.04、NIVDIA、CUDA、CUDNN——01
- Java程序性能优化——性能调优层次
- php 报警声,php 报警 [NOTICE] fpm_children_bury()
- python,day7,并发编程
- html移动端语音波纹,html5 +css3 点击后水波纹扩散效果 兼容移动端
- 全面认识海思SDK及嵌入式层开发(4)
- WPF实现字体霓虹灯渐变动画效果
- HDU 6069 数论 区间素数筛 + 赛后反思
- 电工电子工艺实训考核装置QY-GY01C