filter、map、reduce函数的说明

在进行遍历的时候for循环给我一种很麻烦的感觉。而我先发,for里一般都会加一个if判断。这样在后期代码读取的时候很头大。代码很长。
然而。filter函数,map函数,reduce函数就能解决这个问题,现在通过一个例子来简单说明:
现在我们有个数组n,我需要对这个数组进行要求:

  1. 把数组中小于100的找出来
  2. 把新的数组的每个数乘以2
  3. 求出总和
我们先用原来的方法
let n=[20, 40,333,222,666,30,70];
let newNums=[];
	for(let i of n){
	  if (i<100){
	    newNums.push(i)
	  }
	}
	//[20,40,30,70]
	console.log(newNums);
	let newNums2=[];
	for (let i of newNums){
	  newNums2.push(i * 2)
	}
	//[40, 80, 60, 140]
	console.log(newNums2)
	let total=0;
	for (let i of newNums2){
	  total += i;
	}
	//320
	console.log(total)
使用高级函数
let newNums = n.filter(function (x) {
  return x<100;
})
console.log(newNums);
let newNums2 = newNums.map(function (x) {
  return x * 2;
})
console.log(newNums2);
let total = newNums2.reduce(function (preValue, x) {
  return preValue + x;
},0)
console.log(total);
高级函数化简1
let total = n.filter(function (x) {
  return x<100;
}).map(function (x) {
  return x * 2;
}).reduce(function (preValue, x) {
  return preValue + x;
},0)
console.log(total);
高级函数化简2
let total = n.filter(x => x<100).map(x => x*2).reduce((preValue,x) => preValue + x);
  console.log(total);

通过的上边的例子。给我的第一感觉是代码减少了。让我能看的很舒服了。
现在我们来说说这个三函数是干嘛的吧。

filter函数

filter 读音:[ˈfɪltə®],意思是:滤器,过滤器。从意思上我们就可以知道,这个函数是帮我们过滤掉数组中不要的数据。
filter中的回调函数有个要求,必须返回一个Boolean值
以上的例子来说,若返回一个true,函数内部就会自动将这次回调的x加入到一个新的数组中。若返回一个false则函数内部会过滤到x。

map函数

map 读音:[mæp],
map是返回一个经过处理后的新数组,但是原来的数组不会改变。
意思是在遍历数组的时候进行一些运算。并且返回一个新的数组。

reduce函数

reduce 读音:[rɪˈdjuːs],对数组中的所有元素调用指定的回调函数。该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值