1、Array.prototype.concat(value, [value1])
可以合并多个数组,返回一个新的数组。如果数据中对象类型数据,只是进行浅拷贝,原始数组和新数组都引用相同的对象。
var a = [1,2,3, {a:'a'}];
var b = [[4],5];
a.concat(8, 9, b)//[1,2,3,{a:'a'},8,9,[4],5]
2、Array.prototype.copyWithin(target, [,start[,end]])
浅拷贝一个数组指定部分到数组中,总的数组长度不变。返回被改变的原始数组 target如果大于arr.length,将不发生拷贝。可以为负数 start可以是负数,如果没有传,从0开始 end可以是负数,如被忽略,认为到数组结束位置
var a = [1,2,3,4,5];
a.copyWithin(2, 1)//[1, 2, 2, 3, 4]
3、Array.prototype.every(callback(element[,index[,array]])[,thisArg])
Array.prototype.some(callback(element[,index[,array]])[,thisArg])
every方法测试数组中每个值,是否都满足callback要求,返回布尔值。不会改变原数组。如果空数组,将返回true
var a = [1,2,3,4,5];
a.every((item)=>(item>3))//false
a.every((item)=>(item>0))//true
some方法测试数组中,有某个值满足callback测试,返回布尔值。不会改变原数组
4、Array.prototype.includes(findValue[,fromIndex])
判断数组是否含有指定元素,返回布尔值 可以判断出NaN元素
var a=[1,2,NaN,4,5];
a.includes(2, -3)//false
a.includes(2, 1)//true
a.includes(NaN)//true
Array.prototype.indexOf(value[,fromIndex])
lastIndexOf类似 找到指定元素,返回索引,没有找到返回-1 如果fromIndex大于数组长度,直接返回-1
var a = [1,2,3,4,5];
a.indexOf('a')//-1
a.indexOf(2)//1
a.indexOf(2, 6)//-1
Array.prototype.find(callback[,thisArg])
找到第一个满足callback测试的值。否则返回undefined findIndex函数返回索引,没有满足返回-1
5、Array.prototype.flat(depth)
递归遍历数组,按照depth扁平化数组,返回一个新数组 默认深度为1,会去除掉空白项
var a = [1,2, [3,4], [[5]]];
a.flat()//[1,2, 3, ,4, [5]];
a.flat(2)//[1,2,3,4,5]
a.flat(Infinity)//[1,2,3,4,5]
var b = [1,2,,3,4];
b.flat()//[1,2,3,4]
Array.prototype.flatMap(callback(value[,index,array])[,thisArg])
与map、flat(1)起作用一样
var a = ['你好', '', '大家好'];
a.flatMap((item)=>(item.split(''))) //["你", "好", "大", "家", "好"]
6、Array.prototype.pop()
从数组最后删除一个元素,返回删除的元素,改变原始数组 如果是空数组,返回undefined
var a = [];
a.pop()//undefined
var b = [,,];
b.pop()//undefined
Array.prototype.push(element[,element...])
数组末尾追加多个元素,返回数组长度。改变原始数组
shift删除数组第一个元素,返回删除的值,没有返回undefined,改变原始数组 unshift数组开头追加多个元素,返回数组长度,改变原始数组
7、Array.prototype.reverse()
是数组元素位置颠倒,改变原始数组
Array.prototype.sort([,compareFunction])
数组排序
8、Array.prototype.join([,separator])
将数组元素拼接成字符串,并返回改字符串 分隔符,默认为逗号 如果元素为undefined或者null,被当做空字符串处理
var a = [,1,,]
a.join()//',1,'
9、Array.prototype.reduce(callback(accumulator,value[,index[,array]]))
为每个元素执行callback,返回累计结果 reduceRight方法类似
10、Array.prototype.slice([begin[, end]])
浅拷贝数组指定区间数据,返回一个新的数组,原始数组不会被改变 begin默认从0开始,可以是负数,[begin[, end]]大于数组长度,返回[] end默认数组长度,可以是负数
var a = [1,2,3,4,5];
var b = a.slice(2, 4)//b=[3,4] a=[1,2,3,4,5]
11、Array.prototype.splice(start[, deleteCount[, item1[, item2[, ...]]]])
通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组 deleteCount可以是0或负数,表示不删除元素 item表示要添加进来的元素
var a = [1,2,3,4,5];
a.splice(2, 2)//[3, 4] , a=[1,2,5]
var b = [1,2,3,4,5];
b.splice(3,2,'a', 'b','c')//[4, 5], a=[1,2,3,'a','b','c']