数组的常用方法

swift 数组有很多的操作方法,但是用的时候用常常想不起来,就列出来看看

map 和 flatMap 对数组中的元素进行变形操作
filter 主要对数组进行过滤
reduce 主要对数组进行计算
sort 对数组进行排序
forEach 循环遍历每一个元素
min 和 max 找出数组中最大元素和最小的元素
drop 丢弃元素
contains 元素是否符合某个条件
index 索引
first 和 last 开始和末尾
let array1 = ["1","2","3","4","5"];// 1 普通遍历操作
for  i in array1 {print(i);
}// 2 迭代除了第一个元素之外的所有元素
for i in array1.dropFirst(){print(i);
}// 3 迭代除了最后N个元素之外的所有元素
for i in array1.dropLast(2){print(i);
}// 4 寻找一个指定的元素第一个索引
array1.firstIndex(of: "1");// 5 筛选出符合某种标准的元素的索引
// filter 是一个高阶函数 因为其本身可以接受函数作为参数 所以称之为高阶函数
// 返回值是一个符合筛选条件的数组// 找出数组中 大于 2 的元素
let resArr1 = array1.filter { (str) -> Bool inreturn Int(str)! > 2;
}// 简化的写法是 直接在闭包当中书写判断的表达式
let resArr2 = array1.filter{ Int($0)! > 2 }// ["3", "4", "5"]
print(resArr1);
print(resArr2);// 6 filter 的用法
let array2 = ["apple","banana","watermelon","orange"];// 筛选出字符小于6的元素
let res3 = array2.filter{ $0.count > 6};
// 筛选出字符包含p的元素
let res4 = array2.filter{ $0.contains("p")};// ["watermelon"]
print(res3);
// ["apple"]
print(res4);// 7 map 对数组中的元素进行变形操作
let array3 = [2,5,8];
// 对每一个元素+5操作
let res5 = array3.map { (idx) -> Int inreturn idx + 5;
}// 简化的操操作
let res6 = array3.map{idx in idx + 10};// [7, 10, 13]
print(res5);
// [12, 15, 18]
print(res6);// 8 reduce 操作let array4 = [1,2,3,4,5];// 8.1 计算数组之和
let red_res1 = array4.reduce(10){// $0 代表计算后的结果// $1 代表单个的元素// 10 代表 $0 = 10$0 + $1;
};// 25
print(red_res1);// 8.2 另外一种形式的计算
let total_count = array4.reduce(0){(x,y) -> Int inreturn x + y;
}print(total_count);// 9 sort 排序方法
// 进行大小的结果排序
let array5 = [5,8,2,15];
let sort_res1 =  array5.sorted(){$0 < $1;
}let sort_res2 =  array5.sorted{$0 < $1}//[2, 5, 8, 15]
print(sort_res1);
print(sort_res2);// 10  获取数组中的最大值 最小值print(array5.max() as! Int);
print(array5.min() as! Int);// 11 forEach 循环遍历每一个元素
array5.forEach { (idx) inprint(idx);
}// 12 contains 元素是否符合某个条件
// 判断数组中是否有大于5的元素
array5.contains{$0 > 5};

swift 数组 filter reduce sort 等方法相关推荐

  1. js数组的reduce与reduceRight方法

    数组由众多的实例方法,下面记录下reduce的使用方法 arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initi ...

  2. swift_046(Swift map,filter, reduce方法)

    首先,咱们说说 map函数如何使用. 1 2 3 let numbers = [1,2,3,4] let result = numbers.map { $0 + 2 } print(result)   ...

  3. js数组中forEach/some/every/map/filter/reduce的区别

    2019独角兽企业重金招聘Python工程师标准>>> // js数组中forEach/some/every/map/filter/reduce的区别// 1. foreach:就是 ...

  4. 【JavaScript】查漏补缺 —数组中reduce()方法

    [JavaScript]查漏补缺 -数组中reduce()方法

  5. python reduce函数filter_Python filter()及reduce()函数使用方法解析

    一.filter() 在Python内建函数中,有一个和map()函数用法类似.却可以用来过滤元素的迭代函数,这个函数就是filter().它的函数原型是:filter(function,iteara ...

  6. js中数组filter过滤奇偶数_js--数组的filter()过滤方法的使用

    前言 你还在通过for循环遍历数组吗?你还在遍历之后一项一项的通过if判断过滤你需要的数据吗?你还在写着一大堆代码实现一个简单的过滤数据功能吗?那么,今天他来了.他就是这里要介绍的es6中数组filt ...

  7. Array数组对象sort排序方法

    数组sort排序方法 Array数组对象中的sort方法是根据数组中数组元素的字符编码进行排序的,所以对数字的排序,会跟想要的升序结果不一样 通过设置sort()方法的参数可以按照自定义的排序方式对数 ...

  8. 数组的 reduce方法

    数组的 reduce方法 reduce() 方法对数组中的每个元素按序执行一个由你提供的 reducer 函数,每次运行都会 将先前元素的计算结果作为参数传入,最后将其结果 汇总为单个返回值. 当第一 ...

  9. 数组求和-reduce方法

    function sum(...numbers){return numbers.reduce((pre,current)=>{return pre + current}) } console.l ...

最新文章

  1. win7硬盘安装ubuntu双系统——注意项
  2. Objective-C中的复制忍者卡卡西---NSProxy
  3. 每秒处理240万帧游戏画面,AI训练成本降低80%,谷歌开源RL并行计算框架
  4. 对MVC、MVP、MVVM的理解
  5. SCSE 21fall 课程
  6. centos主题设置
  7. 在线云客服管理系统、会话管理、访客管理、客户管理、工单管理、会话记录、考勤统计、数据报表、工单设置、全局设置、转人工服务、自动回复、客户标签、客服监控、客服系统、前端会话、客服管理、在线客服、人工客服
  8. 《机器学习实战》学习总结(三)朴素贝叶斯在文本分类的应用
  9. 20号:JAVA的值传递与引用传递的正确理解
  10. delphi中WMI的使用(一)
  11. vuex , 简单入(liao)门(jie)
  12. 2022蓝桥杯冲刺(历年真题剖析,含省赛、国赛)
  13. python网络爬虫从入门到精通吕云翔_python爬虫
  14. Maven本地仓库搭建
  15. 明御运维审计与风险控制系统远程桌面(server2012、2016系统)报错error:NLA or TLS security negotiation failure, Please check...
  16. 技术岗面试中的一些常见问题
  17. 项目:漫漫H5游戏-抓娃娃机
  18. 浩辰3D软件新手入门攻略:草图平面
  19. EPICS -- autosave模块使用示例
  20. 史上最全解析——柯林斯大猫英语分级(附1~11级绘本及音频资源)

热门文章

  1. Python 基础 - Day 2 Assignment - ShoppingCart 购物车程序
  2. Linux cp命令如何拷贝整个目录下所有文件
  3. @Ignore_JUnit - Ignore Test
  4. 【D3】transition API
  5. 关于登录记住密码使用cookie的详解
  6. Linux(CentOS)目录操作命令、文件操作命令、压缩解压缩命令
  7. iOS安全攻防(八)Thoes的Logos简介
  8. ACM 1740 A New Stone Game http://acm.pku.cn/JudgeOnline/problem?id=1740
  9. 深入理解PHP之OpCode
  10. Linux下C语言的fgets与fputs