2016-01-13 10 views
8

Ich habe den folgenden Code, kann jeder sagen, der Unterschied:Was ist der Unterschied zwischen lodashs _.map und _.pluck?

let _ = require('lodash'); 

let arr = [ 
    {'fname':'Ali', 'lname': 'Yousuf'}, 
    {'fname': 'Uzair', 'lname': 'Ali'}, 
    {'fname': 'Umair', 'lname': 'Khan'} 
]; 

_.map(arr, 'fname'); 
_.pluck(arr, 'fname'); 

Der Ausgang ist gleich, und beide Funktionen nicht arr mutiert.

Antwort

14

In der Art, wie Sie sie verwenden, machen sie im Grunde das gleiche. Deshalb wurde .pluck() aus Lodash v4.0.0 zugunsten von .map() mit einer Zeichenfolge als zweites Argument entfernt.

Hier ist der relevante Auszug aus dem changelog:

entfernt _.pluck für _.map 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] 
+1

ja, 'map' kann erhalten eine' function' oder eine 'Zeichenfolge 'Als ein Parameter, wenn es eine' Zeichenkette 'erhält, wird sein Verhalten wie' zupfen 'sein. Ansonsten verhält sich das Verhalten wie 'Array.prototype.map'. – gabrielperales

Verwandte Themen