2016-02-01 12 views
180

Früher habe ich einmal Lodash _.pluck ... ich liebte ...Was ist mit Lodash _.pluck passiert? zupfen

Realisierung Lodash nicht mehr pluck (Stand Lodash 4.x) unterstützt, bin ich kämpfen zu erinnern, was stattdessen zu verwenden ...

ich ging zu the docs, schlug cmd-f, getippt ‚zupfen‘, aber mein armer Freund verlassen nicht einmal eine richtige Erwähnung ... nicht einmal eine ...

Kann jemand ‚durch ersetzt wurde‘ gegeben bitte erinnere mich daran, was ich stattdessen verwenden soll?

+0

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

+0

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

Antwort

279

Ah-ha! Die Lodash Changelog sagt alles ...

"_.pluck für _.map entfernt mit iteratee Kurzschrift"

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

konnte sie einfach nicht beide halten ...? Ich sehe nicht die Notwendigkeit, Dinge umzubenennen, nur um sie umzubenennen. –

+4

@KennyWorden Sie sind 100% richtig –

+11

Es ist nicht "umbenennen" obwohl - Karte bereits existierte - und Zupfen wurde einfach entfernt. Map liefert zufällig ähnliche Funktionalität mit derselben Argumentsignatur. – Chris

9

Verwenden _.map statt _.pluck. In der neuesten Version wurde _.pluck entfernt.

32

Es gibt keine Notwendigkeit für _.map oder _.pluck seit ES6 hat abgenommen.

Hier ist eine Alternative mit ES6 JavaScript:

clips.map(clip => clip.id)

+2

Keine ES6-Anforderung erforderlich: 'Array.prototype.map' ist im ES5.1-Standard enthalten. Siehe [Browser-Unterstützung] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Browser_compatibility) - es geht so weit zurück, wie es sich 2017 in den meisten Fällen zu kümmern braucht wahrscheinlich! – davnicwil

+1

@davnicwil 'Array.prototype.map' ist ES5.1, sicher, aber die nette Pfeilsyntax' => 'für anonyme Funktionen ist nicht. ;) – 00dani

+1

@ 00Dani guter Punkt! Meine Augen übersprungen komplett den dicken Pfeil. Na gut, 'clips.map (function (clip) {return clip.id})' ist immer noch nicht so schlecht, denke ich ;-) – davnicwil