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

以下是示例节点repl会话:

$ 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客户端上使用它。

如果您使用lodashfunction的模块化版本,他们不知道哪些其他function被加载和可用,所以它不是很容易使其开箱即用。

你可以做的是build立自己的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倍小。