一步一步教你 JavaScript 函数式编程(第三部分)

这是关于使用 JavaScript 进行函数式编程的最后一篇文章,我们将从 第1部分第2部分 开始,将 JSON 输出最终输出为满足我们需求的对象 :

  • (已经完成) 过滤掉一个月前发布(比如说,30天)的文章。
  • (已经完成) 通过文章的标签(tags)对文章进行分组(这意味着如果文章有多个标签,那么该文章会出现在多个分组中)。
  • (本文讨论) 按发布日期(published)降序排序每个标签文章列表。

现在我们有一个被过滤并按标签分组的对象,我们需要为每个标签组进行一些排序。运行我们的 app.js 程序后(注,app.js代码可以在这个 gist 中查看),我们输出的对象现在是这样的: 继续阅读

一步一步教你 JavaScript 函数式编程(第二部分)

上一篇关于函数式编程的文章 中,我们通过处理典型的 JSON 响应数据 的需求介绍一些函数式编程的主题。

以下是我们的需求:

  • (已经完成) 过滤掉一个月前发布(比如说,30天)的文章。
  • (本文讨论) 通过文章的标签(tags)对文章进行分组(这意味着如果文章有多个标签,那么该文章会出现在多个分组中)。
  • (下一篇文章讨论) 按发布日期(published)降序排序每个标签文章列表。

上一篇文章 专注于我们上述第一项需求 – 过滤掉发布超过30天的文章。

我们还创建了一个有用的 函数式实用工具库 ,我们将在本文中继续添加它。您可以查看该 gist 的完整源代码。

在这篇文章中,我们将讨论第二个需求,它在新过滤出来的列表中按标签(tags)对我们的文章记录进行分组。 继续阅读

一步一步教你 JavaScript 函数式编程(第一部分)

在阅读关于 Currying(柯里化)Partial Application(偏函数应用) 和其他函数式编程技术之后,一些开发人员不知道应该什么时候使用这些方法;为什么要这样使用?

在接下来的三篇系列文章中,我们将尝试解决这个问题,我们会尝试,并向你展示如何在一个短小而现实的例子中用函数式编程的方式,解决这个问题。

什么是函数式编程(Functional Programming)

在我们深入之前,让我们花一点时间来回顾一下一些实用的函数式编程概念。 继续阅读

JavaScript 中的 Currying(柯里化) 和 Partial Application(偏函数应用)

在这篇文章中,我们将介绍 Javascript 函数式编程中几种常见技术:Currying(柯里化) vs Partial Application(偏函数应用)。您不需要使用函数式编程的背景来理解这些内容,所以不必担心。

关于函数式编程的快速回顾

我假设你对 Javascript 中的函数已经有了一个基本的了解,包括高阶函数闭包call & apply ;如果你还不了解这些,那么请你快速去了解这些主题后再回来看这篇文章。

现在回来,让我们先回顾几个要点,然后再继续阅读。

Arity(参数数量) 指的是一个函数可以接受的参数的数量。这可能是一个没有,一个(unary),两个(二进制)或更多(多值)。您还可以使用具有可变数量参数的函数(variadic(可变参数)函数)。

函数允许您通过函数的 .length 属性来访问它们的参数数量。函数的 .length 属性永远不会改变 – 该属性总是匹配函数的声明参数的数量。 继续阅读