首页 > 编程语言 > 详细

JavaScript高阶函数之filter、map、reduce

时间:2020-11-24 11:09:25      阅读:22      评论:0      收藏:0      [点我收藏+]

JavaScript高阶函数

filter(过滤)

用法: 用于过滤,就是把数组中的每个元素,使用回调函数func进行校验,回调函数func返回一个布尔值,将返回值为 true 的元素放入新数组

参数:函数

返回值: Boolean

写法一:

//箭头函数 参数n为数组元素
const nums = [20,30,110,60,190,50]
let newNums =nums.filter(n =>{
  return n < 100
})

写法二:

//普通函数
 let newNums = nums.filter(function(n) {
		return n < 100;
      })

map

用法: 遍历原数组,将元素处理然后放入到新数组中

参数: 函数

返回值: 新数组元素

写法一:

//箭头函数
let newNums2 =newNums.map(n =>{
  return n*2
})

写法二:

let newNums2 =newNums.map(function(n){
  return n*2
})

reduce

用法: 用于对数组中所有的内容进行汇总(相乘、相加…)

参数: 函数

返回值: 新数组元素

示例:

//将数组中所有元素加上n
let arr = [20,40,80,100]
let sum = arr.reduce(function (preValue, n) {
  return preValue + n
},0)
/*
	第一次:preValue -> 0  ; n-> 20
	第二次:preValue -> 20 ; n-> 40
	第一次:preValue -> 60 ; n-> 80
	第一次:preValue -> 140; n-> 100
*/

preValue:上一次汇总的值,即return的值,初始值设置为0

n: 是指遍历数组中的元素

链式调用

将数组arr中小于10的元素*2然后再相加

var arr = [2,6,8,11,20,32];
let total = arr.filter(n => n < 10).map(n => n*2).reduce((pre,n) => pre + n)
console.log(total); // 32

JavaScript高阶函数之filter、map、reduce

原文:https://www.cnblogs.com/birdyBlob/p/14028709.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!