lodash的_.map和_.pluck有什么区别?

11

我有以下代码,请问有什么区别:

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个回答

17
在您目前的使用方式下,它们基本上是相同的。这就是为什么.pluck()在Lodash v4.0.0中被删除并改用带有字符串作为第二个参数的.map()的原因。
以下是来自更改日志的相关摘录:
“删除了_.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]

1
是的,map可以接收一个function或一个string作为参数,如果它接收到一个string,那么它的行为就像pluck。否则,它的行为就像Array.prototype.map - gabrielperales

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接