javascript - 使用 Lodash 3.0 模块时如何使用链接?

标签 javascript node.js lodash

以下是一个示例 Node repl session :

$ mkdir /tmp/foo
$ cd /tmp/foo
$ npm install lodash
lodash@3.0.0 node_modules/lodash
$ node
> var chain = require('lodash/chain/chain')
> var map = require('lodash/collection/map')
> var value = require('lodash/chain/value')
> var fruits = ['apple', 'banana', 'cherry']
> chain(fruits)
{ __actions__: [],
  __chain__: true,
  __wrapped__: [ 'apple', 'banana', 'cherry' ] }
> value.call(chain(fruits))
[ 'apple', 'banana', 'cherry' ]
> var capitalize = require('lodash/string/capitalize')
> map(fruits, capitalize)
[ 'Apple', 'Banana', 'Cherry' ]
> map(chain(fruits), capitalize)
[ '',
  'True',
  'Apple,banana,cherry' ]

理想情况下,我会有一个 map 函数可以接收一个 lodash 链对象并返回一个 lodash 链对象,这样我就可以利用 Lodash 3.0 中新的惰性链接。像这样:

> value(map(chain(fruits)))
[ 'Apple', 'Banana', 'Cherry' ]

我了解以下内容按预期工作:

> var lodash = require('lodash')
> lodash(fruits).map(lodash.capitalize).value()
[ 'Apple', 'Banana', 'Cherry' ]

我宁愿使用模块,只需要我将要使用的内容,因为我将在 Web 客户端上使用它。

最佳答案

如果您使用 lodash 函数的模块化版本,它们无法知道哪些其他函数已加载和可用,因此开箱即用并不容易。

然而,您可以做的是构建您自己的自定义构建的 lodash,它将只包含您需要的功能。

在你的情况下,它只会:

lodash modern include=chain,value,map,capitalize

然后你就可以像普通版本一样使用它了:

> var lodash = require('./lodash.custom.js')
> var fruits = ['apple', 'banana', 'cherry']
> lodash(fruits).map(lodash.capitalize).value()
[ 'Apple', 'Banana', 'Cherry' ]

而 js 文件比原始文件小 5 倍。

关于javascript - 使用 Lodash 3.0 模块时如何使用链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28221165/

相关文章:

node.js - 在 socket.io 中控制来自客户端的心跳超时

javascript - 在 AngularJS 项目中使用 Lodash 有好处吗?

Angular2 和 lodash...找不到名称

javascript - 如何检查外部 JavaScript 是否加载失败?

javascript - Canvas 上的正弦运动 : Call function at turning points

javascript - babel 与express js :avoid relative path imports

javascript - 有没有更好的方法在 Sails JS 中使用嵌套(关联)模型?

javascript - 在 react 模板中提取对象数组中的对象项

javascript - 使用 Javascript 覆盖现有 HTML 元素属性和属性

javascript - 如何合并对象数组?