1.数组头部操作
graph TD
A["数组头部操作"] --> B["unshift()"]
A["数组头部操作"] --> C["shift()"]
- unshift()
+ 向数组的最前端添加一个或多个值
+ 如果写多个unshift(),则最后写的在最前面,分批插入和一次性插入结果是不一样的
+ unshift改变了原数组,并返回修改后数组长度
- shift()
+ 删除数组最前端的值
+ 改变了原数组,返回被删除的值
2.数组尾部操作
graph TD
A["数组尾部操作"] --> B["push()"]
A["数组尾部操作"] --> C["pop()"]
- push()
+ 向数组的末尾添加一个或多个值
+ push改变了原数组,并返回了修改后的数组长度
- pop()
+ 删除数组的最末尾的一个值
+ 改变了原数组,返回被删除的值
3. splice:
- 参数1:删除开始的下标的位置
- 参数2:从删除位置开始数,删除元素的长度
- 返回:删除的值组成的数组
splice方法添加值
- 参数1:开始删除的下标
- 参数2:删除的长度
- 后边所有的参数:在删除位置添加的元素
4. concat(合并数组)
- 合并数组 把一个或多个值合并到数组的末尾
- 可以把一个数组合并到另一个数组中(把要合并的数组展开,只能展开一层)
- 不会改变原数组,而是返回一个新的合并后的数组
5.截取数组
- splice
- 因为删除数组返回被删除的值,所以可以把被截取的元素删除,拿到返回值
- 参数2省略 默认到数组的末尾
- 可以从某个位置开始截取,规定截取长度
- slice
- 可以截取指定数组中的元素
- 参数1:开始截取的位置
- 参数2:结束的位置,不包含结束位置(如果省略,默认到末尾)
- 原数组不会发生变化,返回一个截取值组成的新数组
6. 数组倒序
reverse方法()
改变了原数组,并返回了原数组的引用
var arr = ["a", "b", "1", "a", "c", "f", "e"]
var re = arr.reverse()
7.sort排序
sort方法:
- 在原数组的基础上对数组的元素进行排序
- 如果在调用sort的时候没有传入任何参数,则会按照字符串的格式对数组的元素进行排序
- 如果想按照其他的顺序进行排序,就必须向sort方法中传入比较函数
- 比较函数有两个参数,比较函数会进行比较这两个参数
- sort内部
- a是后边的值,b是前边的值
- return的值只要是负数则交换顺序,如果是0或者正数则不交换
Array.sort((a,b)=>{
return a-b
})
8.join方法:
- 把数组转为字符串
- 可以在join方法中传入参数,代表替代字符串中的逗号
- 不会改变原数组,返回一个字符串
- 原理 》 是把每一个元素调用了toString方法转字符串(null和undefined转为空串)
9.indexOf和lastIndexOf:
indexOf:
- 检测元素在数组中第一次出现的位置
- 如果当前元素在数组中没有出现,则返回-1
- 参数2可以规定从第几位开始检测(可以为负,倒着数)
lastIndexOf:
和indexOf一样,只不过是从右向左查找
10.toString()和toLocalString():
toString()
把数组转字符串的方法,有时在一些隐式转换的时候也会调用toString
toLocalString()
根据电脑运行环境决定转换的值
11.forEach
forEach():
- 专门用来遍历数组
- forEach接收一个回调函数作为参数,数组的值会依次的进入函数执行
- 回调函数接受三个参数
- 参数1:当前进入函数的数组的元素
- 参数2:当前进入函数的数组的元素的下标
- 参数3:当前数组的引用
- 空位数组的空位不会进入forEach中
- forEach没有返回值
- forEach中的回调函数的this是指向window
12.map
map映射数组:
- 参数和forEach类似
- 遍历数组,并返回一个和原数组长度一样的数组
- 原数组每次会进入回调函数执行,当前回调函数的返回值就是映射数组对应位置的值
对比forEach:
- 都是遍历数组,map会返回一个和原数组一样长度的数组,forEach没有返回值
13.every和some
every方法
- 和forEach的书写格式一致
- 会把数组的每一个值拿到回调函数中去,如果有一个回调函数返回false,则停止遍历,every直接返回false
- 如果全局遍历结束,回调函数都返回true,则整个every方法返回true
some方法:
- 和forEach的书写格式一致
- 会把数组的每一个值拿到回调函数中去,如果有一个回调函数返回true,则停止遍历,some直接返回true
- 如果全局遍历结束,回调函数都返回false,则整个some方法返回false
14.filter
filter方法:
- 筛选过滤
- 和forEach书写方法一致
- 返回一个数组,原数组的值依次进入回调函数,当回调函数返回true的时候,把这个值放入返回的新数组中