2016-02-18 46 views
3

下面的代碼工作:lodash:只需要導入鏈不起作用不錯

let _ = require('lodash'); 
let arr= _([1,2,3,4]); 
let b = arr.map((e)=>e^2); 

下不起作用:

let chain = require('lodash/chain'); 
let arr= chain([1,2,3,4]); 
let b = arr.map((e)=>e^2); 

它給了我下面的錯誤:

arr.map is not defined.

有沒有辦法在不導入整個全局對象的情況下使用鏈?

+0

好吧,'chain'只是創建一個包裝。爲了使用集合函數,必須包含'collections'包。 –

+1

剛剛發現這篇關於這個話題的文章:https://medium.com/making-internets/why-using-chain-is-a-mistake-9bc1f80d51ba#.xjqw189vy。一個有趣的閱讀,沒有時間來根據文章編譯你的問題的答案,但文章可能會幫助你在此期間... – forrert

+0

有趣的是,使用'mixin'的文章中的鏈接示例似乎不起作用爲了我。 'value'函數不返回結果數組...示例:https://tonicdev.com/56c61ad30fd7d90c005ab98b/56c61ad30fd7d90c005ab98c – forrert

回答

2

need至少core

var _ = require('lodash/core'); 
let arr= _([1,2,3,4]); 
let b = arr.map((e)=>e^2); 

你也可以推出自己的custom lodash package