函数式编程之every函数

本文探讨函数式编程中every函数的应用,通过自定义实现,理解其如何判断数组所有元素是否满足条件。并提供示例代码,展示函数式编程的魅力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一系列关于函数式编程的文章,主要记录我在函数式编程学习方面的心得体会,部分参考于部分书籍或者文章,纯粹个人学习,不做任何商业用途,如有冒犯请及时指正。

在这里插入图片描述

es6 every函数

every函数我们在日常开发中可能不太常用到,他的用法也很简单:

array.every(function(currentValue,index,arr), thisValue)

参数说明:

参数说明
function(currentValue,index,arr)必须,函数,数组中的每个元素都会执行这个函数
thisValue可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue ,“this” 的值为 “undefined”

实例:

请求数组是否全是偶数
let arr = [1,2,3,4]
function checkEventNumber(num){
return num%2==0
}
arr.every(checkEventNumber)  //false
let arr2 = [2,4,6,8]
arr2.every(checkEventNumber) //true 

下面我们自己用函数式编程的思想写一个every函数。

const every = (arr,fn)=>{
    let result = true  //初始化数组全部为偶数
    for(let i= 0;i<arr.length;i++) //循环数组
    result = result && fn(arr[i]) //修改result的值
    return result
}

现在我们已经按照我们的需求(判断数组是否全是偶数)创建好我们的函数,函数运行不依赖外部环境而且满足应用透明性,对所有的相同输入都返回相同的值,也是一个纯函数,符合我们函数式变成的思想。
接下来我们运行这个函数

function checkEventNumber(number){
return number%2==0
}
every([2,3,4],checkEventNumber) //false
every([2,4,6],checkEventNumber) //true

很好,代码运行符合我们的预期,这就是一个简单运用函数式编程实现的函数。函数式编程的好处很多,如果你能在自己的开发实践中不断地尝试使用函数式编程,你将会体验到现在网络上非常流行的词:真香!

下一篇文章继续使用函数式编程写一些我们日常使用的高阶函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值