3

是否有用于处理对象和数组的良好实用程序库。

例如函数,如:extend、forEach、复制对象/数组等,

node.js 环境中常见的是什么?我想知道 underscore.js 有没有像样的替代品?

4

4 回答 4

6

underscore.js是这类东西的一个很好的默认值。这是一个关于兼容性问题的线程,可能很方便。

编辑,根据您的要求提供下划线以外的内容:

据我所知,当您正在寻找额外的数组操作(很像 jQuery 用于 DOM 操作)时,下划线已成为事实上的标准。Joyent 维护了一个相当彻底的 node.js 兼容模块清单,唯一看似可比的实用程序似乎是一个名为 fjs 的实验性库,它强调柯里化(从源代码来看,大部分功能都来自于扩展下划线函数) )。那里可能还有其他东西,但据我所知,下划线的渗透力和成熟度一无所知。

另一个编辑——如果你很好奇的话,这里有一些较旧的库,但是它们的维护已经下降了一点——valentinewu.jsFunctionalSugar。功能性和情人节可能会瘦一点;wu.js 看起来差不多,而且糖更胖。

于 2012-09-13T19:33:58.663 回答
5

lodash是您可能还想考虑的“下划线.js 的替代品*”。

Lo-Dash v0.7.0 至少在 Chrome 5-21、Firefox 1-15、IE 6-9、Opera 9.25-12、Safari 3-6、Node.js 0.4.8-0.8.8、Narwhal 0.3 中进行了测试.2、RingoJS 0.8 和 Rhino 1.7RC5

于 2012-09-13T20:22:18.033 回答
3

对于扩展,您可以使用 Node 的内置util._extend()函数。

var
  extend = require('util')._extend,
  x = {a:1},
  y = extend({}, x);

Node的_extend函数源码:https ://github.com/joyent/node/blob/master/lib/util.js#L563

于 2013-02-23T12:44:14.230 回答
1

看看 Ramdajs:http: //ramdajs.com/0.22.1/index.html

Ramda 的主要特点是:

  • Ramda 强调更纯粹的功能风格。不变性和无副作用的功能是其设计理念的核心。这可以帮助您使用简单、优雅的代码完成工作。

  • Ramda 函数是自动柯里化的。这使您只需不提供最终参数即可轻松地从旧函数构建新函数。

  • 对 Ramda 函数的参数进行了排列,以便于进行柯里化。要操作的数据通常最后提供。

最后两点一起使得将函数构建为更简单的函数序列变得非常容易,每个函数都转换数据并将其传递给下一个函数。Ramda 旨在支持这种编码风格。

于 2016-09-02T18:12:44.383 回答