• 在开发过程中,也许会遇到需要对数组进行去重的相关处理。如果数组内只含有基础类型的数据时,可以写两个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之数组去重(去除重复元素)相关推荐

  1. 去除html重复的元素 js,js数组中去除重复值的几种方法

    在日常开发中,我们可能会遇到将一个数组中里面的重复值去除,那么,我就将我自己所学习到的几种方法分享出来 去除数组重复值方法: 1,利用indexOf()方法去除 思路:创建一个新数组,然后循环要去重的 ...

  2. 去除数组中的重复元素

    在一些场景中需要做到数组去重,下面从两种方法来介绍,一种是比较传统的,es6之前就已经出现的:另外一种是es6中的set()可以去除数组中的重复元素,下面我们列举出详细代码: 第一种方法:(index ...

  3. java删除有序数组中的重复元素_java去除已排序数组中的重复元素

    题目描述 给定一个已排序的数组,去除数组中的重复元素,只保留一个重复的元素,并且返回新的数组长度. 要求: 不要给数组分配额外的空间,你必须使用常量的内存大小进行原地操作. 例如: 给出数组A=[1, ...

  4. php自动合并,php实现合并数组并去除重复的方法

    php实现合并数组并去除重复的方法 发布时间:2020-08-12 10:35:05 来源:亿速云 阅读:99 作者:小新 这篇文章主要介绍了php实现合并数组并去除重复的方法,具有一定借鉴价值,需要 ...

  5. VB 删除数组中的重复元素

    VB 删除数组中的重复元素,当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除.并且返回结果数组. 以下这个函数只支持一维数组. Function Array_unique(Arr As V ...

  6. 使用set集合去除重复元素

    如何使用set集合去重 我们都知道,set集合是无序的,这样也导致set集合里面的元素是不能重复的,因为这一个特性,所以我们经常用set集合进行去重操作,我们下面以一个简单的例子说明set集合是如何进 ...

  7. python列表如何去除重复_python列表如何去除重复元素(转自先锋教程网)

    python列表如何去除重复元素? 例子,python列表去重复. 复制代码代码示例: #第一种def delRepeat(liebiao): for x in liebiao:  while lie ...

  8. php 合并去掉重复数组,php合并数组并去除重复

    php合并数组并去除重复的实现方法:1.使用"array_merge"方法或者"+"符号实现合并数组:2.通过"array_unique"函 ...

  9. php如何合并重复项,php合并数组并去除重复

    php合并数组并去除重复的实现方法:1.使用"array_merge"方法或者"+"符号实现合并数组:2.通过"array_unique"函 ...

最新文章

  1. ECCV 2020 | 腾讯优图8篇论文入选,涵盖目标跟踪、行人重识别、人脸识别等领域...
  2. 明细表如何添加重量_关于Revit中明细表标准的导出及导入
  3. 2005年最具钱途的人才:软件研发炙手可热
  4. 自己动手,刷一台迷你缓存服务器玩玩
  5. Flutter进阶第14篇:支付宝支付【下】
  6. LINUX下载编译libfaac
  7. 全国快递物流查询-快递查询接口-阿里云代码封装
  8. Linux系统打不开gedit文本编辑器
  9. 【数字电路抢救】2 逻辑函数的代数化简 3逻辑表达式的化简
  10. 公众号开发(三)----接收事件推送之关注/取消关注事件
  11. 基于ZooKeeper的分布式锁和队列
  12. 【Ubuntu18.04】移动固态硬盘安装ubuntu18.04、NIVDIA、CUDA、CUDNN——01
  13. Java程序性能优化——性能调优层次
  14. php 报警声,php 报警 [NOTICE] fpm_children_bury()
  15. python,day7,并发编程
  16. html移动端语音波纹,html5 +css3 点击后水波纹扩散效果 兼容移动端
  17. 全面认识海思SDK及嵌入式层开发(4)
  18. WPF实现字体霓虹灯渐变动画效果
  19. HDU 6069 数论 区间素数筛 + 赛后反思
  20. 电工电子工艺实训考核装置QY-GY01C

热门文章

  1. i5 11300h和R5 5600H 参数对比哪个好
  2. 吴裕雄 python 神经网络——TensorFlow 图、张量及会话
  3. vertx.FileResolver文件解析
  4. 【转载】最大权闭合子图 【网络流】
  5. uva 753(网络流最大流)
  6. Codeforces Round #359 (Div. 2) D. Kay and Snowflake
  7. Cakephp事件机制尝鲜
  8. Effective C++笔记(一)——条款26-29
  9. Jquery创建JSON对象
  10. java 中的访问修饰符