ES5-ES8 数组拥有的方法
1.判断是否是数组 Array.isArray( arg ) 有兼容性
2.toString 数组转字符串 arr.toString();
3.join 数组每一项间的拼接 arr.join(); String.split()
4.pop 删除原数组最后一项,返回删除项 arr.pop() 原数组被修改
5.push 在原数组末尾添加一项,返回数组新长度,改变原数组
arr.push( ...arg )
6.shift 删除数组第一项,改变原数组,返回删除项
arr.shift( );
7.unshift 在原数组首位添加项,返回数组新长度
arr.unshift( ...arg );
8.reverse 反转数组项的顺序,返回修改后的数组
arr.reverse();
9.sort 数组每项按照unicode编码排序,默认升序
arr.sort();
10.concat 数组合并,返回合并后的数组 arr1.concat( arr2 )
11.slice 截取数组 参数一:开始位置 参数二:结束位置后一位
参数为负数,用数组总长度加上该负数来确定位置;
结束位置小于起始位置,返回空数组
arr.slice(arg1,arg2)
12.splice 删除、插入、替换数组元素
参数一:起始位置 参数二:删除元素个数 参数三:插入的元素
arr.splice(arg1,arg2,arg3)
返回被删除的项,会改变原数组。
13.indexOf/lastIndexOf 数组中查找元素的位置
参数一:要查找的元素 参数二:开始查找位置 返回值-1 不存在,返回值大于等于0表示元素位置
arr.indexOf(arg1,arg2) 从左往右查找
arr.lastIndexOf(arg1,arg2) 从右往左查找
遍历数组的5种方法
14.every 数组的每一项都返回true,遍历完整个数组,最终返回值才为true
arr.every((val,index,arr)=>{
return val<10;
})
15.some 数组任意一项返回true,则停止遍历,返回值为true
arr.some((val,index,arr)=>{
return val<10;
})
16.filter 遍历整个数组,找到符合的元素,返回这个新组成的数组
arr.filter((val,index,arr)=>{
return val<10;
})
17.map 遍历整个数组,返回每个元素调用后的结果组成新的数组
arr.map((val,index,arr)=>{
return val**2;
})
18.forEach 遍历数组每一项
arr.foreach((val,index,arr)=>{
return val**2;
})
19.数组累加器reduce、reduceRight
arr.reduce((preValue, currentValue)=>{
return preValue + currentValue
})
ES6新增数组方法
20.from 将类似数组的对象和可遍历的对象转为真正的数组。
Array.from(["a","b","c"])
Array.from("fool")
21.of 将一组值转为数组 弥补Array()的不足
Array.of(7) //[,,,,,,]
Array.of(7) // [7]
Array.of(1, 2, 3); // [1, 2, 3]
22.copyWithin 将数组中指定位置的元素复制到其他位置(会覆盖掉原有元素)
参数一:从该位置开始替换元素 参数二:从该位置开始读取数据,默认为0 参数三:到该位置停止读 取数据,默认为数组长度
arr.copyWithin(arg1,arg2,arg3)
23.fill 使用给定值,填充数组 参数一:给定的值 参数二:起始位置 参数三:结束位置
arr.fill(arg1,arg2,arg3)
24.find/findIndex 找到数组中符合条件的值/位置,若没找到返回undefined
arr.find((val,index,arr)=>{
return val>9;
})
25.keys() 遍历数组获取键名
values() 遍历数组获取键值
entries() 遍历数组获取键值对
for(let [index,val] of arr.keys()) {
console.log(val)
}
ES7.0新增的数组方法
26.includes 判断数组中是否存在该元素 弥补indexOf不能判断NaN
arr.includes()
ES8没有新增数组方法