【发布时间】:2015-01-29 17:42:58
【问题描述】:
以下是一个示例节点 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 客户端上使用它。
【问题讨论】:
-
那么问题是什么?
-
在使用模块时如何从 lodash 链接的懒惰中受益?
标签: javascript node.js lodash