JavaScript常用数组方法整理
@TOC
前言
最近整理了一下JavaScript数组的常用方法,也方便以后查看。
1.栈方法:push()、pop()
push()
末尾添加(接收任意数量的参数) 返回数组的最新长度
pop()
末尾删除 返回被删除的项\
2.队列方法:unshift()、shift()
unshift()
开头添加 返回新的数组长度
shift()
开头删除(删除数组的第一项) 返回删除的第一个元素
3.indexof()、lastIndexOf()、includes()
indexof()
从前往后搜索,如果存在就返回索引号,不存在就返回-1
lastIndexof()
从后往前搜索,如果存在就返回索引号,不存在就返回-1
includes()
返回布尔值,表示是否找到一个与指定元素匹配的项。
4.操作方法:concat()、slice()、splice()
concat()
在现有数组全部元素基础上创建一个新数组。 可以传多个参数,并把参数添加到数组末尾。
slice()
创建一个包含原有数组中一个或多个元素的新数组(截取操作)
这个操作不影响原数组!
接收一个或2个参数,返回元素的开始索引和结束索引。
- 1个参数:返回从开始索引到数组末尾的所有元素。
- 2个参数:返回从开始索引到结束索引的所有元素,不包括结束索引。
注意:slice()参数有负值,数组长度+负值 = 确定位置
Eg:5个元素的数组,Slice(-2,-1)相当于slice(3,4)
如果结束位置小于开始位置,就返回空数组!
splice()
始终返回一个数组,包含数组中被删除的元素;如果没有删除元素,就返回空数组。
- 删除 传2个参数 (要删除的第一个元素的位置,删除的数量) 返回删除的元素
- 插入 传3个参数 (开始位置,0,要插入的元素) 插入的元素可多个
- 替换 传3个参数 (开始位置,要删除元素的数量,要插入的任意多个元素)
5.Array.isArray()
判断是不是数组,是就返回true,不是返回false
6.排序方法:sort()、reverse()
sort()
默认升序排列数组
reverse()
将数组元素反向排序
7.转换方法:toString()、join()
toString()
把数组转换成字符串,逗号分割每一项
join(‘字符串分割符’)
把数组转换成字符串,分隔符分割每一项;返回包含所有项的字符串。
注意:如果不给join()传入任何参数,或者传入undefined,那么仍然使用逗号作为分隔符。
8.keys()、values()、entries()
keys()
返回数组索引的迭代器
values()
返回数组元素的迭代器
entries()
返回数组索引/值对的迭代器
这几个方法都返回迭代器,所以可以将它们的内容通过Array.from()直接转换为数组实例。
9.迭代方法:every()、some()、filter()、forEach()、map()
every()
对数组每一项都运行传入的函数,如果对每一项函数都返回true,则这个方法返回true。
some()
对数组每一项都运行传入的函数,如果有一项函数返回true,那么这个方法返回true。
filter()
对数组每一项都运行传入的函数,函数返回true的项会组成数组之后返回。
forEach()
对数组每一项都运行传入的函数。注意:forEach()是没有返回值的。
forEach方法中的回调函数有3个参数:数组元素,数组索引,数组本身。
map()
对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的函数。
需求:要对数组arr中的元素每个都乘以2。
需求:将数组中的每一个对象的id都加1。
需求:将对象中的id和name分别合成新的数组。
10.创建数组的静态方法:from()、of()
from()
用于将类数组结构转换为数组实例
第一个参数(必填):一个类数组对象,即任何可迭代的结构
第二个参数(可选):映射函数参数(这个函数可以直接增强新数组的值)
第三个参数(可选):用于指定映射函数中this的值。
伪数组具有length属性:
of()
用于将一组参数转换为数组实例
11.reduce()
从数组的第一项遍历到数组的最后一项 接收两个参数(对每一项都会运行的归并函数,以之为归并起点的初始值) 回调函数接收4个参数: 1、prev 累计器累计回调的返回值; 表示上一次调用回调时的返回值,或者初始值 init; 2、cur 数组中当前被处理的元素 3、index 当前元素的索引 (可选) 4、array 当前元素所在的数组(可选)
总结
以上就是今天要分享的数组方法内容,欢迎大家前来与分享更好用的方法~
转载自:https://juejin.cn/post/7244420528420651045