В чем разница между lodash _.map и _.pluck?

У меня есть следующий код, может кто-нибудь сказать разницу:

const _ = require('lodash');

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

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

Вывод один и тот же, и обе функции не мутируют arr.

Ответ 1

В том виде, как вы их используете, они в основном делают то же самое. Вот почему .pluck() был удален из Lodash v4.0.0 в пользу использования .map() со строкой в ​​качестве второго аргумента.

Здесь соответствующая выдержка из changelog:

Удалено _.pluck в пользу _.map с сокращенным сокращением

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]