lodash的_.map和_.pluck有什么区别?
问题描述:
我有下面的代码,任何人都可以看出其中的差别:lodash的_.map和_.pluck有什么区别?
let _ = require('lodash');
let arr = [
{'fname':'Ali', 'lname': 'Yousuf'},
{'fname': 'Uzair', 'lname': 'Ali'},
{'fname': 'Umair', 'lname': 'Khan'}
];
_.map(arr, 'fname');
_.pluck(arr, 'fname');
输出是一样的,这两个功能都没有变异arr
。
答
在使用它们的方式中,它们基本上也是这样。这就是为什么.pluck()
已从Lodash v4.0.0中删除,转而使用.map()
作为第二个参数的字符串。
下面是来自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]
是,'map'可以接收'function'或字符串' '作为一个参数,如果它收到一个'string',它的行为就像'pluck'。否则,它的行为就像'Array.prototype.map'。 – gabrielperales