【问题标题】:Lodash vs JavaScript Built In for map,reduce,filterLodash vs JavaScript 内置用于 map、reduce、filter
【发布时间】:2017-11-05 07:27:50
【问题描述】:

我想知道为这 3 个函数 [map(),reduce(),filter()] 包含 Lodash 是否更好,或者只使用它们的 ES6 版本。

我更喜欢使用 Lodash 函数,它对我的​​用例来说更简单一些。不过,我知道使用 ES6 函数可能会带来性能优势。

还想知道 Lodash 是否比 ES6 更向后兼容?

关于如何测试我的实现性能的建议?

关于继续使用 Lodash 还是使用 ES6 的建议?

【问题讨论】:

  • ES6 是未来......我完全会继续那个
  • @Mayday 感谢您的快速响应
  • Lodash 是一个很好的工具,如果你有更复杂的算法,它的可读性更强等等,它们内置了很多任务的函数,而且真的很方便。它可以让你免于很多头痛。但是对于像你提到的简单任务,我会使用 ES6。正如@Mayday 所说,这是未来,我猜它也是现在 :D 如果可以的话,如果你摆脱 Lodash,你就会失去一个依赖,这几乎总是一件好事。
  • @godzsa 非常感谢你,我会和 Lodash 说再见,直到我需要它来做一些更复杂的事情,如果不是很好的话
  • 关于如何测试我的实现性能的建议?您可以查看JSPerf

标签: javascript ecmascript-6 lodash


【解决方案1】:

如果你有更复杂的算法,Lodash 是一个很好的工具,它更具可读性等等。它内置了很多在原生 ES6 中不太容易实现的任务的函数,它真的很方便并且可以让你免于很多头痛。但是对于像你提到的简单任务,我会使用 ES6。正如@Mayday 在评论中所说,这是未来。

如果您仅将 Lodash 用于这些任务,我建议您摆脱它,这意味着您减少了一个依赖项,这几乎总是一件好事(用户不必下载 lodash,因为原生地图,减少,filter 在浏览器中实现)。是的,现在您可能需要使用捆绑器或翻译器来使您的代码与 es5 兼容,但这是一种开发依赖性,在生产中不会存在,而且它会在一段时间内得到支持,您甚至不会需要这些额外的步骤。

要测试您的代码,请参阅以下答案: How do you performance test JavaScript code?

Google Chrome 和 Firefox 也有非常好的分析器:https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/reference#record

如果你想比较原生函数和 lodash 函数,我建议你运行相同的函数实现了几百万次并测量开始和结束之间的时间(console.time https://developer.mozilla.org/en-US/docs/Web/API/Console/time),我认为你也应该做对它们进行一些测量,因为结果可能取决于许多其他事情。我想我也会避免 for 循环,因为它们经过高度优化并且可能会扭曲结果。

编辑

正如@TamasHegedus 在评论中指出的那样,这些函数在 ES5 规范中,所以你甚至不需要打包器或翻译器,它可以在本地工作。

【讨论】:

    【解决方案2】:

    Js perf 可用于测试性能 - 如在 this test from 2015 中,它显示 lodash 的 Map 明显快于本机 map 函数。我不确定这种性能差异在多大程度上仍然存在。

    Web 应用程序由于加载大量代码而感觉缓慢的情况更为常见,而不是 JavaScipt 太慢。如果这些是您计划在 Lodash 中使用的唯一功能,我建议您使用原生 es6 方法。

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多