1. map函数
map函数是一个映射函数,有一一映射的关系。
array.map((item) => {…})
let array = [1,2,3,4,5]
let newArr = array.map(item => {
return item + 1
})
console.log(newArr) //[2,3,4,5,6]
可以看到结果是遍历了数组中的每一个数并加上了1。
2. filter函数
filter是过滤的意思,调用了filter方法后,会得到一个过滤后的新数组。
array.filter( (item) => {…} )
let array = [1,2,3,4,5]
let newArr = array.filter(item => {
return item > 3
})
console.log(newArr) //[4,5]是一个新数组
可以看到结果是循环遍历每个数据,并判断是否符合条件,只有true才会返回这个元素。
3. reduce函数
reduce函数是迭代函数,常用于计算累加等操作。
array.reduce((preValue,curValue,index,array) => {…})
reduce函数可以接收四个参数,分别是前一个值,当前值,索引和数组。如果不指定preValue,那么默认将数组第一个元素作为前一个值,下一次循环的时候,preValue就是上一次的curValue,而curValue会变成下一个索引对应的值,以此类推。
let arr = [[1,2],[3,4],[5,6]]
let newArr = arr.reduce((a,b) => {
return a.concat(b) //合并数组
},[])
console.log(newArr) //[1,2,3,4,5,6]
4. find函数
和filter函数有点相似,也是寻找符合目标的对象,和filter有所区别的是找到第一个符合要求的对象就会停止寻找,返回一个对象,而filter返回的是所有符合要求的对象组成的新数组
let array = [1,2,3,4,5]
array.find( item => item > 2) //3
5. every函数、some函数
因为两个函数的作用类似所以就一起解释
let users = [
{name:"Jill",age:10},
{name:"Alex",age:18},
{name:"Bill",age:20},
{name:"Tony",age:24}
];
let isAdult_every=users.every(user=>{
return user.age>18;
})
let isAdult_some=users.some(user=>{
return user.age>18;
})
console.log(isAdult_every) //false
console.log(isAdult_some) //true
6. forEach函数
用于遍历数组,类似于for循环,没有返回值
let array = [1,2,3,4,5]
array.forEach(number => {
console.log(number) //1 2 3 4 5
})
如果要查询数组中的唯一值,用some方法更适合,在some里return true就会终止遍历,更加省时。