1. forEach: 单纯遍历, 无法break,可以用try/catch中throw new Error来停止
2. map: 遍历数组,返回回调返回值组成的新数组
3. filter: 过滤
4. some: 有一项返回true,则整体为true
5. every: 有一项返回false,则整体为false
6. join: 通过指定连接符生成字符串
7. push / pop: 末尾新增(任意)和删除(一个),改变原数组, 返回新增/删除项
8. unshift / shift: 头部新增(任意)和删除(一个),改变原数组,返回操作项
9. sort(fn) / reverse: 排序与反转,改变原数组
10. concat: 连接数组,不影响原数组, 浅拷贝
11. slice(start, end): 返回截断后的新数组,不改变原数组
12. splice(start, number, value...): 返回删除元素组成的数组,value 为插入项,改变原数组
13. indexOf / lastIndexOf(value, fromIndex): 查找数组项,返回对应的下标
14. reduce / reduceRight(fn(prev, cur), defaultPrev): 两两执行,prev 为上次化简函数的return值,cur 为当前值
改变数组的API:
函数的名称 | 功能 | 传参 | 返回值 | 执行环境对象 |
队列 | ||||
Array.prototype.shift | 在头部删除一个 | 无 | Arr[0] | 会 |
unshift | 在头部新增任意 | 新增items | Newarr.length | 会 |
栈 | ||||
Push | 在尾部新增任意 | 新增items | Newarr.length | 会 |
pop | 在尾部删除一个 | 无 | Arr[length-1] | 会 |
数组中的操作 splice | 删除、新增插入、替换 | 至少是两个 Index_start,count,新增的数据项s | 删除的数据项 | 会 |
判断 | ||||
Array.isArray | 判断当前变量是否是数组类型(兼容性好) | 当前变量 | Boolean | 不会 |
排序 | ||||
Sort() | 默认排序,升序,ASCII | 无 | newarr | 会 |
Reverse() | 反转数组的顺序数据项 | 无 | newarr | 会 |
sort(fcname) | 排序:自定义排序 | 函数作为参数 Return v1-v2>0 是升序 Sort: Fcname(v1,v2) V1在前面v2在后面 return 负数 v1在后面,v2在前面 return 正数 两个值相等 return 0 | newarr | 会 |
拼接concat | 数组的一层拼接 | 任意数据类型 多个 | 拼接后的新数组 | 不受 |
截取slice | 截取数组一部分 | [index_Start,end) | 截取的数组 | 不受 |
查找indexOf lastIndexOf | 查找数据项在数组中的索引下标 | 数据项,起始索引下标=0 | 存在-索引下标 不存在 -1 | 不受 |
迭代 | ||||
every | 对每一个数据项执行函数,都满足要求返回true,否则返回false | 函数作为参数 Fcname(value,index,arr){ Return bool } | boolean | 不受 |
some | 对每一个数据项执行函数,有一个满足要求的就返回true,所有的都不满足要求返回false | 函数作为参数 Fcname(value,index,arr){ Return bool } | boolean | 不受 |
filter | 过滤:对每一个数据项执行函数,满足要求的数据项保存起来,不满足要求的就不要 | 函数作为参数 Fcname(value,index,arr){ Return bool } | 满足要求的数据项组成的数组 | 不受 |
map | 一一映射:对每一个数据项执行函数的结果进行保存 | 函数作为参数 Fcname(value,index,arr){ Return xx } | 映射之后新的数组(个数相同) | 不受 |
forEach | 迭代循环 | 函数作为参数 Fcname(value,index,arr){ 没有返回值 } | 没有返回值 | 不受 |