push 数组尾部添加元素
pop 数组尾部删除元素 不接受参数
unshift 数组头部添加元素
shift 数组头部删除元素 不接受参数
slice 截取数组 原数组不发生改变
splice 截取数组 原数组发生改变
reverse 逆转
sort 排序
join 将数组转换成字符串,数组元素以参数拼接
concat 拼接
slice()
- 0个参数时,输出原数组
- 1个参数时,从该参数对应的位置开始截取,直至数组结束
- 2个参数时,从第一个参数表示的下标开始,到第二个参数表示的下标结束,但不包含第二个参数对应的元素
var arr = [1,2,3,5];
var a = arr.slice(0,2); //[1,2]
splice()
- 0个参数时,返回空数组
- 1个参数时,从该参数对应的位置开始截取,直至数组结束
- 2个参数时,从第一个参数表示起始位置,第二个参数表示截取的长度
- 3个参数以上 从截取位置开始增加第3个及以后的参数
var arr = [1,2,3,5];
var a = arr.slice(0,2); //[3,5]
sort()
按个位进行排序
var arr=[1,33,2,4,];
arr.sort();//[1,2,33,4]
为了解决这个问题,可以有如下定义:
arr.sort(function(a,b){
return a-b;//递增顺序
return b-a;//递减顺序
});
除上述方法外,还有一些新增的数组方法
isArray() 用于确定传递的值是否是一个 Array
from() 对伪数组(包括arguments Array,Map,Set,String…)转换成数组对象,并返回一个数组实例
copyWithin(target, start, end) 浅复制数组的一部分到同一数组中的另一个位置
some(fn()) every(fn()) 返回一个布尔值
map(fn()) forEach(fn())
两者都是对数组的遍历,用法相同,唯一不同的是:
forEach(function(item){return item+1;})//返回结果为undefined map(function(item){return item+1})//返回数组数值都加1
indexOf()
返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
lastIndexOf()
返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找
filter(fn())
给定一个过滤条件,返回输出过滤后的结果。
var a = arr.filter(function(item){过滤条件});
console.log(a)
includes()
用来判断一个数组里是否包含某个值,返回一个布尔类型数值
var arr = [1,2,4];
arr.includes(1);//true
arr.includes(3);//false
较常用
find()
返回数组中满足提供的测试函数的第一个元素的值
[1,3,4,6].find((n)=>n<2)//1
[1,3,4,6].find((n)=>n>0)//1
findIndex()
返回数组中满足提供的测试函数的第一个元素的索引
[1,3,4,6].findIndex((n)=>n>0)//0
[1,3,-1,6].findIndex((n)=>n<0)//2
reduce(fn())
对数组中的所有元素调用指定的函数的回调函数,该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供
var arr = [1,4,2,6,3];
var a = arr.reduce(function(a,b){
return a+b
});
console.log(a);//16
//原因为1+4+2+6+3