透镜人

透镜人

中等

简介

在 JavaScript 中,透镜是函数式编程中的一个概念,它让你能以模块化、不可变的方式访问和修改数据。本质上,透镜是一对可组合的纯函数,一个负责取值,一个负责设值,都聚焦于对象内部的某个特定字段。

用透镜可以简化代码、提高代码的复用性,并避免常见的编程错误。例如,可以用透镜来:

  • 访问和修改嵌套的数据结构,而不必关心数据的具体结构。
  • 以纯函数的方式更新数据,而不改动原对象。
  • 把多个透镜组合起来,构建出更复杂的透镜,从而以多种方式访问和修改数据。

说明

使用 lens 更新嵌套记录(仅适用于具有不可变数据的语言)。

更新嵌套的不可变记录的字段有点烦人。 结构越深,这类情况的代码就越繁琐。 比如,你有一个 Person,它包含一个 Address,Address 里有一个 Street,Street 里有一个 Number,那么要更新 Number,就得先创建一个带有新 Number 的 Street,再创建一个带有新 Street 的 Address,最后创建一个带有新 Address 的 Person。 是不是已经晕了?

解决这个问题的一个办法是使用 lens。

用 lens 实现几个访问记录的函数。 测试套件也允许你完全不用 lens,这样你就可以尝试不同的思路。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
JavaScript Exercism

准备好开始 透镜人 了吗?

注册 Exercism,借助 37 个概念159 个练习 和真人导师指导,学习并掌握 JavaScript,全部免费。