根据方法特性分类数组方法
改变数组自身的方法
3个常用方法:
splice(startIndex, deleteCount, ...items)
--从指定位置添加元素,返回被删元素(新增时返回空数组)。sort(func(a,b))
--数组排序,按照字符编码的顺序排序。时间复杂度跟浏览器实现方法有关。reverse()
--数组头尾颠倒,在谷歌/Microsoft Edge中相当于sort((a,b)=>-1)
,在火狐中相当于sort((a,b)=>1)
。
增删(队列、栈实现)方法:
push(...items)
--从尾部添加元素。返回push后的数组长度。pop()
--去掉尾部元素。返回尾部元素(非数组)。unshift(...items)
--从头部添加元素。返回unshift后的数组长度。shift()
--去掉头部元素。返回头部元素(非数组)。
处理方法:
fill(value,start,end)
--将value值填满start索引至end索引位置,不含end位置。copyWithin(targetIndex,start,end)
--将start至end(可选)处元素,复制并替换targetIndex往后的元素。数组长度不变。
不影响原数组的方法
增删方法:
slice(start,end)
--从'start'索引浅拷贝到'end'索引,并返回。concat(...items)
--将参数元素合并到该数组。若参数为数组,则取其元素。
查询方法:
indexOf(item)
--查询指定元素索引,没有返回-1。lastIndexOf(item,start)
--查询指定元素最后出现的位置,'start'指定起始查询位置,可选。includes(item)
--若数组含有该元素,返回true,反之false。find(func(item, index, arr))
--返回满足func()条件的第一个元素。filter(func(item, index, arr))
--返回满足func()条件所有元素(数组)。findeIndex(func(item, index, arr))
--返回满足func()条件的第一个元素索引值。
处理方法:
map(func(item, index, arr))
--返回一个,由func返回元素组成的新数组。split(str,len)
--String的方法,返回将str分割后的数组。str:分隔符号/正则表达式,len返回数组指定长度。join(str)
--在数组元素间插入str,返回拼接后的字符串。不传参数时,元素间用逗号拼接。reduce(func(acc,item,index,arr),initialValue)
--返回数组经过func处理后的最终迭代结果。acc:上一次迭代结果;item:当前值(从第二个元素开始);index:当前执行元素索引(从1开始),arr:原数组,initialValue:首次调用func的acc初始值。reduceRight(func(acc,item,index,arr),initialValue)
--等同于reduce(),func从右侧开始执行。forEach(func(item, index, arr))
--遍历数组,无返回值。isArray(arr)
--判断arr是否为数组,返回布尔值。
其他:
from(arrlike,func(item),this)
--由类数组对象生成一个新的浅拷贝数组。of(...items)
--由传入的参数,生成一个数组。entries()
--返回新的数组迭代对象,对象包含每个索引的键值对。keys()
--返回由索引键构成的可迭代对象。values()
--返回由每个索引的值构成的可迭代对象。every(func(item,index,arr),this)
--是否所有元素满足func的条件,返回布尔值true。some(func(item,index,arr),this)
--只要有元素满足func的条件,返回布尔值true。flat(depth)
--按指定深度depth,对数组降维,返回新数组。flatMap()
--相当于map遍历数组后,再执行depth为1的flat()函数。toString()
--返回由逗号拼接了各个元素的字符串。toLocaleString(locales,options)
--返回由逗号拼接了各个元素的字符串。(可指定语言环境)