Skip to content

数组方法

创建方法

shell
[]                                               字面量
new Array()                                      Array 构造函数
Array.of()  ES6                                  创建数组,创建单值数组,可将任意值转为数组,解决了new Array() 弊端   
Array.from(数组,函数,this对象) ES6                 将类数组、可迭代对象、Set、Map 数据转为普通数组,数组映射与 map 同,

增加值

shell
arr[arr.length]                                  索引赋值
push();
unshift();
concat();
... 拓展运算符
splice(开始位置,删除个数,添加的值)                  第二个参数为0,代表添加

删除值

shell
pop();
shift();
splice(开始位置,删除个数,添加的值)                  第三个参数不设置,代表删除
slice(start,end);                               不修改原数组

修改值

shell
arr[index<arr.length]                           索引赋值
splice(开始位置,删除个数,添加的值)                  第二个参数为正整数,代表修改                  
sort()
reverse()
join()
map()                                           映射
Array.from(数组,函数,this对象) ES6                数组映射与 map 同
fill()                                          填充
flat()                                          拉平
flatMap()                                       先映射再拉平

查询值

shell
indexOf(值)                                      返回第一个相等的索引,没有返回 -1
lastIndexOf(值)                                  返回最后一个相等的索引,没有返回 -1
includes(值)                                     判断数组是否包含某个值
find(函数)                                       返回第一个满足条件的值
findIndex(函数)                                  返回第一个满足条件的索引,没有返回 -1
filter(函数)                                     返回满足条件的所有值
every(函数)                                      判断每一项是否都满足
some(函数)                                       判断任意一项满足

遍历方法

shell
for 循环
for...of
forEach()

累计计算

shell
reduce((累计返回值,当前元素,当前索引,原数组本身)=>{},累计初始值如果没有则以数组第一个值开始)  可用于:数组求和、对象数组求和,求积、最值、去重、二维转一维         
reduceRight((累计返回值,当前元素,当前索引,原数组本身)=>{},累计初始值如果没有则以数组第一个值开始)  功能与reduce相同只是从右向左开始计算
  1. 静态方法
shell
Array.isArray()                                  判断是否是数组
Array.of()  ES6                                  创建数组,创建单值数组,可将任意值转为数组,解决了new Array() 弊端   
Array.from(数组,函数,this对象) ES6                 将类数组、可迭代对象、Set、Map 数据转为普通数组,数组映射与 map 同
  1. 迭代方法
shell
for、for of、forEach
some、every、filter、Map、reduce

改变原数组的八个方法

push、pop、unshift、shift、reverse、sort、splice、fill

注意

  • forEach、slice、concat、扩展运算符...、map、filter 全都是浅拷贝返回新数组,不会修改原数组。
  • 除了那 八个 改变原数组的方法其他数组都不改变原数组,有的是返回新数组、值、布尔、索引

数组常用方法

数组的常用方法可以归纳为:增、删、改、查

新增

shell
push() 从尾部添加 - 在数组末尾添加一个或多个元素,返回新数组的长度
unshift() 从头部添加 - 在数组开头添加一个或多个元素,返回新数组的长度
splice() 任意位置添加 - 通过删除或替换现有元素或者原地添加新元素来修改数组,返回被删除的元素
concat() 拼接 - 合并多个数组,返回新数组

删除

shell
pop() 从尾部删除 - 删除数组最后一个元素,返回被删除的元素
shift() 从头部删除 - 删除数组第一个元素,返回被删除的元素
splice() 任意位置删除 - 可以删除任意位置的元素
slice() 截取- 返回数组的浅拷贝(从开始索引到结束索引)

修改

shell
直接按索引赋值
splice() 任意位置修改
fill() - 用固定值填充数组
slice() 截取- 返回数组的浅拷贝(从开始索引到结束索引)
sort() 排序 - 对数组元素进行排序(默认按字符串Unicode码点)
reverse() 反转 - 反转数组顺序
join() - 将所有元素连接成字符串
toString() - 返回由逗号分隔的字符串

查询

shell
# 查找索引
indexOf() - 返回第一个匹配元素的索引,不存在返回-1
lastIndexOf() - 返回最后一个匹配元素的索引
findIndex() - 返回第一个满足条件的元素的索引

# 查找元素
find() - 返回第一个满足条件的元素
includes() - 判断数组是否包含某个元素,返回布尔值

# 判断
every() - 所有元素都通过测试返回true
some() - 至少一个元素通过测试返回true
isArray() - 判断是否为数组(静态方法)

遍历

shell
forEach() 遍历 - 对每个元素执行回调
map() 映射 - 创建一个新数组,每个元素是回调函数的返回值
filter() 过滤 - 创建一个新数组,包含所有通过测试的元素
reduce() 归并 - 对数组元素执行reducer函数,返回单个值
forEach() 遍历 - 对每个元素执行回调