1,总结与数组有关的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 | 判断当前变量是否是数组类型(兼容性好) | 当前变量 | Booolean | 不会 |
排序 | ||||
sort() | 默认排序,升序 ASCLL |
无 | 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 xxx} |
映射之后的数组个数相同 | 不受 |
forEach | 迭代循环 | 函数作为参数 Fcname(value,index,arr){ 没有返回值 } |
没有返回值 | 不受 |
2.如何实现数组升序排列?例如:var arr = [8, 19, 3, 12, 5, 4]
方法一:冒泡排序
冒泡排序原理:从左到右,将相邻元素进行比较,每比较一轮,就会找到序列中最大的一个或最小的一个。
方法二:用sort方法排序
Sort:是对容器或普通数组中[first,last]范围内的元素进行排序,默认进行升序排序。
3,怎么用函数实现输出数组最大差值?
例如:找出下列正数组的最大差值 [10,5,11,7,8,9] 输出6
5.数组相的算法有哪些?请详细介绍熟知的四种算法原理,并用JavaScript语言实现这四个算法对应的排序过程。https://www.jianshu.com/p/5c894e8b1f88