Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Lodash 3.0模块时如何使用链接?_Javascript_Node.js_Lodash - Fatal编程技术网

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

Javascript 使用Lodash 3.0模块时如何使用链接?,javascript,node.js,lodash,Javascript,Node.js,Lodash,以下是节点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')

以下是节点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' ]
理想情况下,我会有一个映射函数,可以接收一个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倍。

那么问题是什么?在使用模块时,您如何从lodash链接的惰性中获益?