2016-02-01 121 views
180

我曾经用Lodash _.pluck ......我爱的勇气......Lodash _.pluck发生了什么?

实现Lodash不再支持pluck(如Lodash 4.x版的),我挣扎要记住,而不是用什么...

我去the docs,打CMD-F,键入“勇气”,但我可怜的被遗弃的朋友甚至不给一个适当的提...甚至没有“已取代” ......

可有人请提醒我应该使用什么?

+0

https://lodash.com/docs#pick –

+0

https://lodash.com/docs#result –

回答

279

啊哈!该Lodash Changelog说,这一切...

“赞成_.map删除_.pluck与iteratee速记”

var objects = [{ 'a': 1 }, { 'a': 2 }]; 

// in 3.10.1 
_.pluck(objects, 'a'); // → [1, 2] 
_.map(objects, 'a'); // → [1, 2] 

// in 4.0.0 
_.map(objects, 'a'); // → [1, 2] 
+70

难道他们不是简单的保留两个...?我不认为有必要重命名它们,只是为了重命名它们。 –

+4

@KennyWorden你100%正确 –

+11

虽然它不是“重命名” - 地图已经存在 - 并且采摘已被简单地删除。地图碰巧提供了相同的参数签名相似的功能。 – Chris

9

使用_.map而不是_.pluck。在最新版本中,_.pluck已被删除。

32

自ES6起飞后,不需要 _.map_.pluck

下面是一个使用JavaScript的ES6替代:

clips.map(clip => clip.id)

+2

甚至不需要ES6:'Array.prototype.map'是ES5.1标准。请参阅[浏览器支持](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Browser_compatibility) - 它可以追溯到2017年任何人需要担心的地方,大多数大概! – davnicwil

+1

@davnicwil'Array.prototype.map'确实是ES5.1,但匿名函数的可爱箭头语法'=>'不是。 ;) – 00dani

+1

@ 00Dani好点!我的眼睛完全跳过了胖箭头。嗯,'clips.map(function(clip){return clip.id})'仍然不是那么糟糕,我猜;-) – davnicwil