如何在使用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倍小。
- NodeJS:使用请求和knox将远程file upload到S3
- Connect-busboy:当pipe道文件写入蒸汽时,根据types文件为空或不正确
- Express'req.params的格式是什么?
- 在节点REST服务器中,Mongo $ sample(聚合)在GET操作中不起作用
- Webpack在JS文件中引发一个奇怪的语法错误
- nodejs npm同时启动错误
- 节点js从tcp socket net.createServer读取特定的消息
- 承诺呼叫和Express中间件中的Mongoose句柄validation错误
- encryption通道的重新encryption会在Node.js中返回不同的encryption结果