常用数组方法

一、会改变原数组的方法
1、push() 尾部添加一个或多个元素
返回结果:返回新数组长度
示例:[1].push(2) //2 原:[1,2]
2、pop() 尾部删除一个元素
返回结果:返回被删除的元素
示例:[1,2,3].pop() //3 原:[1,2]
3、shift() 头部添加一个或多个元素
返回结果:返回新数组长度
示例:[1].shift(2) //2 原:[2,1]
4、unshift() 头部删除一个元素
返回结果:返回被删除的元素
示例:[1,2,3].unshift() //1 原:[2,3]
5、splice(index,[howmany],[item1, ..., itemX])
//index 必须。开始位置,在指定位置添加/删除项目,使用负值指定从数组末尾开始的位置。
//howmany 可选。需要删除的项数,为0则不删除
//item1, ..., itemX 可选。需要替换被删除位置的元素
返回结果:有被删除的元素,返回被删除的元素,没有则返回[]
示例1:[1,2,3].splice(1) //[2,3] 原:[1]
示例2:[1,2,3].splice(1,1) //[2] 原:[1,3]
示例3:[1,2,3].splice(1,0,4) //[] 原:[1,4,2,3]
6、sort() 数组会按照ASCII值排序
返回结果:返回排序好的数组
示例:[1,5,2,9,4].sort() //[1,2,4,5,9]
7、reverse() 数组反转
返回结果:反转后的数组
示例:[1,2,3].reverse() //[3,2,1]
8、forEach() 数组循环 简单的循环没有返回值,直接操作原数组
二、不会改变原数组的方法
1、filter(function(currentValue,index,arr), thisValue) 数组按条件过滤
//currentValue 必须。当前元素的值
//index 可选。当前元素的索引值
//arr 可选。当前元素属于的数组对象
//thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined"
返回结果:返回符合条件的元素组成的新数组
示例:[1,2,3].filter(item=>{return item>1}) //[2,3] 原:[1,2,3]
2、concat(arr1,arr2...) 数组拼接
返回结果:返回拼接得到的新数组
示例:[1,2,3].concat(4) //[1,2,3,4] 原:[1,2,3]
示例:[1,2,3].concat([1,2]) //[1,2,3,1,2] 原:[1,2,3]
3、slice(start,end) 数组截取 start开始位置 end结束位置
返回结果:返回从开始截取到结束位置(不包含)的新数组
示例:[1,2,3].slice(0,1) //[1] 原:[1,2,3]
4、join(str) 数组拼接,以str拼接每项元素
返回结果:返回拼接得到的字符串
示例:[1,2,3].join(',') //1,2,3 原:[1,2,3]
5、map() 数组循环
返回结果:返回新数组
示例:[1,2,3].map(String) //['1','2','3'] 原:[1,2,3]
6、some() 数组循环 有一个条件满足则返回true
返回结果:true/false
示例:[1,2,3].some(item=>{return item>2}) //true 原:[1,2,3]
7、every() 数组循环 所有条件满足则返回true
返回结果:true/false
示例:[1,2,3].some(item=>{return item>0}) //true 原:[1,2,3]
8、reduce(function(pre,cur),option)
//pre 上次返回的结果,cur本次循环到的那一项,option初始值
返回结果:最后一次归并的结果
示例:[1,2,3].reduce((pre,cur)=>{return pre+cur},0) //6 原:[1,2,3]
示例:[1,2,3].reduce((pre,cur)=>{return pre.push(cur)},[]) //[1,2,3] 原:[1,2,3]
9、includes(searchElement,fromIndex)
//searchElement 需要查找的元素, fromIndex开始查找的位置
返回结果:找到true/找不到false
示例:[1,2,3].includes(2) //true 原:[1,2,3]
10、indexOf(item,start) & lastIndexOf(item, start)
//item 必须项,查找的元素
//start 可选,在数组中开始检索的位置,默认0
返回结果:找到1/找不到-1
示例:[1,2,3].indexOf(2) //1 原:[1,2,3]
【常用数组方法】11、find() & findIndex() 与条件判断的循环相似,条件满足时返回()
//find((currentValue, index, arr) => {})
//currentValue 必须,当前元素
//index 可选。当前元素的索引值
//arr 可选。当前元素所属的数组对象
find返回结果:条件满足时返回第一个满足条件的元素的值 / 不满足条件时返回undefined
findIndex返回结果:条件满足时返回第一个满足条件的元素的索引值 / 不满足条件时返回-1
示例1:[1, 2, 3, 4].find((item, index) => {return item > 2}) //3
示例2:[1, 2, 3, 4].find((item, index) => {return item > 5}) //undefined
示例3:[1, 2, 3, 4].findIndex((item, index) => {return item > 2}) //2
示例4:[1, 2, 3, 4].findIndex((item, index) => {return item > 5}) //-1

    推荐阅读