day06 数组

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]

方法一:冒泡排序

冒泡排序原理:从左到右,将相邻元素进行比较,每比较一轮,就会找到序列中最大的一个或最小的一个。

day06 数组

day06 数组

方法二:用sort方法排序

Sort:是对容器或普通数组中[first,last]范围内的元素进行排序,默认进行升序排序。

day06 数组

day06 数组

3,怎么用函数实现输出数组最大差值?

例如:找出下列正数组的最大差值 [10,5,11,7,8,9]  输出6

day06 数组

day06 数组 

5.数组相的算法有哪些?请详细介绍熟知的四种算法原理,并用JavaScript语言实现这四个算法对应的排序过程。https://www.jianshu.com/p/5c894e8b1f88

day06 数组

day06 数组 

day06 数组

day06 数组 

day06 数组 

 day06 数组

 

 

 

 

 

 

 

上一篇:day06测试计划


下一篇:day06:栈&队列&优先队列