js高阶函数filter、map、reduce

 1 // 高阶函数 filter/map/reduce
 2
 3 // filter中的回调函数有一个要求:必须返回一个boolean值,
 4 // 当返回true时,函数内部会自动将这次回调的 n 加入到新的数组中
 5 // 当返回false时,函数内部会自动过滤掉这次的 n
 6 const nums=[10,20,60,94,348,57,24,674,645,44,4]
 7 let newNums = nums.filter(function (n){
 8   return n<30
 9 })
10 console.log("filter",newNums);
11
12 //map
13 let newNums2 = newNums.map(function (n) {
14   return n * 2
15 })
16 console.log("map",newNums2);
17
18 // reduce作用,对数组中的所有内容进行汇总 m赋值给prevalue,每次preValue为上次的preValue+n的值
19 let m=0;
20 let total = newNums2.reduce(function (preValue,n) {
21   return preValue + n
22 },m)
23 //newNums2=[20,40,48,8]有四个值,那就循环四次
24 // 第一次 :preValue=0    n=20
25 // 第二次 :preValue=20   n=40
26 // 第三次 :preValue=60   n=48
27 // 第四次 :preValue=108   n=8
28 // 第五次 :preValue=116
29 // 最后返回116赋值给 total
30 console.log(total);
31 console.log("*********高阶写法***************");
32
33 let total2 = nums.filter(function (n) {
34   return n<30
35 }).map(function (n) {
36   return n*2
37 }).reduce(function (preValue,n) {
38   return preValue + n
39 },0)
40
41 console.log(total2)
42
43 console.log("更简单写法")
44 let total3 = nums.filter(n => n < 30).map(n => n * 2).reduce((pre, n) => pre + n);
45 console.log(total3)

原文地址:https://www.cnblogs.com/zwnsyw/p/12299889.html

时间: 2024-10-11 04:33:14

js高阶函数filter、map、reduce的相关文章

Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊

函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 而函数式编程(请注意多了一个"式"字)--Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算. 我们首先要搞明白计算机(Computer)和计算(Compute)的概念. 在计算机的层次上,CPU执行的是加减乘除的指令代码

高阶函数:map()/reduce()

Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文"MapReduce: Simplified Data Processing on Large Clusters",你就能大概明白map/reduce的概念. 我们先看map.map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个li

python 函数式编程:高阶函数,map/reduce

1 #函数式编程 2 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 3 #(一)高阶函数 4 5 f=abs 6 f 7 print(f(-20)) 8 #结果 20 9 #函数可以赋值给一个变量,即:变量可以指向函数 10 #那么函数名是什么?函数名其实就是指向函数的变量! 11 12 #下面的代码,执行后,abs已经不指向求绝对值函数而是一个整数10了. 13 #后面的abs(-10)将报错,无法执行,必须重启python才可以. 14 #abs=10

[py][lc]python高阶函数(匿名/map/reduce/sorted)

匿名函数 f = lambda x: x * x f(2) # x =2 #4 - 传入列表 f = lambda x: x[2] print(f([1, 2, 3])) # x = [1,2,3] map使用 传入函数体 def f(x): return x*x r = map(f, [1, 2, 3, 4]) #函数作用在可迭代对象的每一项 #[1, 4, 9, 16] - 另一个例子 list(map([1, 2, 3, 4, 5, 6, 7, 8, 9], lambda x: x * x

js 高阶函数 filter

filter用于过滤array中的一些值,通过带入的函数返回的ture 或false 保留或去除,返回一个新的array filter 使用演示:判断筛选出array中的素数: 1 //判断素数自定义函数: 2 function get_su(x){ 3 if(x <=3){return x>1;} 4 if(x % 2 === 0 || x % 3 === 0){return false;} 5 for(var i = 5; i*i <= x; i +=6){ 6 if(x % i =

Swift高阶函数:Map,Filter,Reduce

闭包介绍 Swift一大特性便是使用简洁的头等函数/闭包语法代替了复杂的blocks语法.希望我们在Swift中不再需要像fuckingblocksyntax中所描述的语法.(译者注:头等函数-即可将函数当作参数传递给其他的函数,或从其他的函数里返回出值,并且可以将他们设定为变量,或者将他们存储在数据结构中) 闭包是自包含的blocks,它能在代码中传递和使用. 本文我们将重点介绍匿名定义的闭包(如:定义成内联的且不具名)也称匿名闭包.我们能够将其作为参数传递给其他函数/方法或者将其作为返回值.

Python 学习笔记 -- 内嵌函数、闭包、匿名函数、高阶函数map、高阶函数filter、高阶函数reduce

1 #------------------------------内嵌函数------------------------------ 2 #内嵌函数就是在函数内部定义函数 3 #实例一 4 print("#------------------------------内嵌函数------------------------------") 5 def funOutOne(): 6 x = 5 7 def funIn(): 8 x = 3 9 print("My funOutO

python高阶函数,map,filter,reduce,ord,以及lambda表达式

为什么我突然扯出这么几个函数,是因为我今天在看流畅的python这本书的时候,里面有一部分内容看的有点懵逼. >>> symbols = '$¢£¥€¤' >>> beyond_ascii = [ord(s) for s in symbols if ord(s) > 127] >>> beyond_ascii [162, 163, 165, 8364, 164] >>> beyond_ascii = list(filter(la

JavaScript基础——高阶函数(map and reduce)

1 //高阶函数:一个函数可以接受另一个函数作为参数,这种函数称之为高阶函数. 2 /*1*/ 3 function f(x,y,f){ 4 return f(x)+f(y); 5 } 6 var sumAbs=f(-6,4,Math.abs); 7 console.log(sumAbs);//10 8 9 10 11 //map和reduce 12 /*map*/ 13 /*2*/ 14 function pow(x){ 15 return x*x; 16 } 17 var arr=[1,2,