【问题标题】:What is the difference between lodash's _.map and _.pluck?lodash 的 _.map 和 _.pluck 有什么区别?
【发布时间】:2016-01-13 11:50:07
【问题描述】:

我有以下代码,谁能分辨出来:

const _ = require('lodash');

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

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

输出相同,两个函数都没有变异arr

【问题讨论】:

    标签: node.js lodash


    【解决方案1】:

    在您使用它们的方式上,它们的作用基本相同。这就是为什么从 Lodash v4.0.0 中删除 .pluck() 以支持使用带有字符串的 .map() 作为第二个参数。

    这是changelog的相关摘录:

    删除 _.pluck 以支持 _.map 并使用 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 可以接收functionstring 作为参数,如果它接收到string,它的行为将类似于pluck。否则它的行为就像Array.prototype.map
    猜你喜欢
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    相关资源
    最近更新 更多