以下是节点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客户端上使用它。
答案 0 :(得分:2)
如果您使用模块化版本的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倍。