资讯专栏INFORMATION COLUMN

JS函数式编程 数组部分风格 ES6版

cppprimer / 3100人阅读

摘要:遍历数组查找数组中的一项匹配条件的第一项数组过滤方法接收一个函数作为累加器,数组中的每个值从左到右开始执行方法,最终返回一个值。假如执行执行过程为求和复杂应用将解析为更多文章

遍历数组:
for(let item of array) {
    
}

// FP
// return array
array.map((item, index) => {})
查找数组中的一项:
for(let item of array) {
    if(item === _item) {
        
    }
}

// FP
// return item 匹配条件的第一项
array.find(item => item === _item)
数组过滤:
for(let item of array) {
    if(item > someValue) {
        
    }
}

// FP
// return array
array.filter(item => item > someValue)
reduce

reduce() 方法接收一个函数作为累加器,数组中的每个值从左到右开始执行方法,最终返回一个值。

array.reduce((preValue, currentValue, index, array) => {}, initialValue);

// fn(fn(fn(initialValue, array[0]), array[1]), array[2])
// 假如array = [1, 2, 3]
// 执行
array.reduce((preValue, currentValue) => preValue + currentValue, 0);
// 执行过程为
// step 1. return 0 + 1
// step 2. return 1 + 2
// step 3. return 3 + 3
求和:
let array = [1, 2, 3, 4, 5];
let sum = 0;
for(let item of array) {
    sum += item;
}

// FP
let sum = array.reduce((pre, cur) => pre + cur, 0);
复杂应用:
// 将"/aaa/bbb/ccc" 解析为 ["/aaa", "/aaa/bbb", "/aaa/bbb/ccc"]
const fn = path =>
    path.split("/")
        .map(item => "/" + item)
        .reduce((pre, cur, index) => pre.concat(index < 1 ? "" : pre[index - 1] + cur), [])
        .filter((item, index) => index > 0);
更多文章 yjy5264.github.io

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92477.html

相关文章

  • 翻译连载 | JavaScript轻量级函数编程-第4章:组合函数 |《你不知道的JS》姊妹篇

    摘要:把数据的流向想象成糖果工厂的一条传送带,每一次操作其实都是冷却切割包装糖果中的一步。在该章节中,我们将会用糖果工厂的类比来解释什么是组合。糖果工厂靠这套流程运营的很成功,但是和所有的商业公司一样,管理者们需要不停的寻找增长点。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 关于译者:这是一个流淌...

    JowayYoung 评论0 收藏0
  • 翻译连载 | JavaScript 轻量级函数编程-第3章:管理函数的输入 |《你不知道的JS》姊

    摘要:但是,对函数式编程而言,这个行为的重要性是毋庸置疑的。关于该模式更正式的说法是偏函数严格来讲是一个减少函数参数个数的过程这里的参数个数指的是希望传入的形参的数量。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTML 最坚实的梁柱;分享,是...

    xiaowugui666 评论0 收藏0
  • JavaScript函数编程(一)

    摘要:所以下面介绍一些函数式编程的知识和概念。函数式编程的一个明显的好处就是这种声明式的代码,对于无副作用的纯函数,我们完全可以不考虑函数内部是如何实现的,专注于编写业务代码。 原文链接 引言 说到函数式编程,大家可能第一印象都是学院派的那些晦涩难懂的代码,充满了一大堆抽象的不知所云的符号,似乎只有大学里的计算机教授才会使用这些东西。在曾经的某个时代可能确实如此,但是近年来随着技术的发展,函...

    hedzr 评论0 收藏0
  • JavaScript函数编程(一)

    摘要:所以下面介绍一些函数式编程的知识和概念。函数式编程的一个明显的好处就是这种声明式的代码,对于无副作用的纯函数,我们完全可以不考虑函数内部是如何实现的,专注于编写业务代码。我会在下一篇文章中介绍函数式编程的更加高阶一些的知识,例如等等概念。 一、引言 说到函数式编程,大家可能第一印象都是学院派的那些晦涩难懂的代码,充满了一大堆抽象的不知所云的符号,似乎只有大学里的计算机教授才会使用这些东...

    Shihira 评论0 收藏0
  • JavaScript 之函数编程

    摘要:同步发布于是个程序员都知道函数,但是有些人不一定清楚函数式编程的概念。你的项目没用到函数式编程,不代表项目不好。函数式编程的对立面就是命令式编程。函数式编程只是一个概念一致编码方式,并没有严格的定义。这里总结一些常用的函数式编程应用场景。 同步发布于 https://github.com/xianshanna... 是个程序员都知道函数,但是有些人不一定清楚函数式编程的概念。 应用的迭...

    bbbbbb 评论0 收藏0

发表评论

0条评论

cppprimer

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<