【发布时间】:2018-04-12 14:20:42
【问题描述】:
我在一些论坛上读到,应该尽可能避免使用 lodash 链,以获得更好的性能和代码的可读性。那么有没有办法在集合上使用原生 javascript 函数来替换这段代码。
_(userCollection).chain()
.map('name')
.compact()
.uniq()
.value();
类似下面这样的东西,但我不确定这样写是否有任何附加价值
_.uniq(_.compact(userCollection.map('name')))
【问题讨论】:
-
Izaak Schroeder's article 提出这一点是一本好书。简短的回答是切换到 lodash/fp,并使用
flow/flowRight之类的结构而不是链。 -
这是一篇精彩的文章,但我不清楚 OP 的声明“我在一些论坛上读到,为了更好的性能和代码的可读性,应尽可能避免使用 lodash 链。”它与那篇文章有关。这篇文章讨论了“如何获得 2 倍的构建时性能提升和 1.5 倍的包大小减少”,这不是“运行时性能提升”。本文还讨论了
.chain为何/如何提高可读性,这就是人们使用它的原因。 -
@gforce301:这篇文章的重点是展示
chain的问题,并推广一种至少可读性更高的替代方案:flow。这与 Ramda(我是其中的作者)提倡的风格相同,并且在函数式语言中很常见。
标签: javascript ecmascript-6 lodash