平时经常用到JS中的数组函数,也没有系统的总结一下,每次用的时候都很挣扎,所以今天要把它们总结,归纳,成为自己的东西

数组(Array)函数

1.Array.map()

此方法是将数组中的每一个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组

let arr=[1,2,3,4,5]
let newarr=arr.map(x => x*2)
//arr=[1,2,3,4,5]原数组保持不变
//newarr=[2,4,6,8,10]返回新数组

2.Array.forEach()

此方法是将数组中的每一个元素执行传进提供的函数,没有返回值,直接改变原数组,注意和map方法区别

let arr=[1,2,3,4]
arr.forEach(x => x*2)
//arr=[2,4,6,8]原数组会发生改变,没有返回值

3.Array.filter()

此方法是将所有元素进行判断,将满足条件的元素作为一个新的数组返回

let arr=[1,2,3,4,5]
const isBigEnough=>value=>value>=3
let newArr=arr.filter(isBigEnough)
//newNum=[3,4,5]满足条件的元素返回一个新的数组 

4.Array.reduce()

此方法是所有元素调用返回函数,返回值为最后结果传入的值必须是函数类型

let arr=[1,2,3,4,5]
const add=(a,b)=>a+b
let sum=arr.reduce(add)
//sum=15 相当于累加的效果
//与之对应的还有一个Array.reduceRight()方法,区别是这个从右向左操作的

5.Array.push()

此方法是在数组的后面添加新元素,此方法改变了数组的长度

let arr=[1,2,3,4]
let newArr=arr.push('Wei')
//newArr=[1,2,3,4,'wei']

6.Array.pop()

此方法用于删除并返回数组的最后一个元素

let arr=[1,2,3,4,5]
let newArr=arr.pop()
//newArr=[1,2,3,4]

7.Array.shift()和Array.unshift()

shift():方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
unshift():方法可向数组的开头添加一个或更多元素,并返回新的长度

let arr=[1,2,3,4,5]
//shift
const newArr_1=arr.shift()
//newArr_1=[2,3,4,5]
//unshift
const newArr_2=arr.unshift('wei')
//newArr_2=['wei',2,3,4,5]

8.Array.sort()

此方法用于对数组的元素进行排序

let arr=[1,3,2,0,5,4]
arr.sort()//如果单纯的调用sort不添加函数,它会按照字符编码的顺序排序
function sortNumber_1(a,b){
    return a-b
}//升序排序
function sortNumber_2(){
    return b-a
}//降序排序 
arr.sort(sortNumber_1)//[0,1,2,3,4,5]
arr.sort(sortNumber_2)//[5,4,3,2,1,0]

9.Array.reverse()

此方法用于颠倒数组中元素的顺序

let arr=[1,2,3,4]
arr.reverse()//[4,3,2,1]

10.Array.concat()

此方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。在没有给方法传参的情况下,它只是复制当前数组并返回副本

let arr_1=[1,2,3,4]
let arr_2=[11,22,33,44]
const newArr=arr_1.concat(arr_2)
//newArr=[1,2,3,4,11,22,33,44]
//arr_1=[1,2,3,4]原函数不发生改变

11.Array.splice()

此方法为万能方法,可以实现增删查改

let arr=[1,2,3,4,5]
let newArr_1=arr.splice(2,0 'haha')//[1,2,'haha',3,4,5]新增一个元素
let newArr_2=arr.splice(2,3)//[1,2]删除3个元素
let newArr_3=arr.splice(2,1 'haha')//[1,2,'haha',4,5]替换一个元素
Last modification:October 22nd, 2019 at 09:58 pm
如果觉得我的文章对你有用,请随意赞赏