JS数组高阶函数
map函数(映射函数)
此函数的作用是遍历数组或对象中每一个元素,对每一个元素进行统一的处理。
map函数接受一个参数。参数的类型为function,返回值是一个数组。函数决定了对每个元素进行何种操作,函数有一个参数代表数组中的每一个元素
let a = [1,2,3,4,5]
console.log(a.map(item => item * item))//[1,4,9,16,25]
console.log(a.map(function (item){
return item - 1
}))//[0,1,2,3,4]
filter函数(过滤函数)
此函数可以对数组中的数据进行过滤选择出需要的数据。
filter函数接受一个参数。参数的类型为function,返回值是一个数组。函数规定了筛选条件,函数有一个参数代表数组中的每一个元素。
let a = [1,2,3,4,5]
console.log(a.filter(item => item > 2))//[3,4,5]
console.log(a.filter(function (item){
return item > 2
}))//[3,4,5]
console.log(a.filter(item => item == 2))//[2]
console.log(a.filter(function (item){
return item == 2
}))//[2]
const persons = [
{name:'张三',age:25},
{name:'李四',age:20},
{name:'王五',age:10}
]
console.log(persons.filter(item=>item.age>18))//[ {name:'张三',age:25},{name:'李四',age:20},]
reduce函数(汇总函数/累加函数)
此函数可以对数组进行累加,得出一个值。
reduce函数接受两个参数。一个参数的类型为function,另一个参数为值是累加的初始值(不设置的话默认为0),返回值是一个值。函数有两个参数一个代表上次循环累加得到的值吗,另一个代表数组中的元素。
let a = [1,2,3,4,5]
console.log(a.reduce((init, item)=>init + item))//15
console.log(a.reduce((init, item)=>init + item, 5))//20