2016-01-13 25 views
8

मैं किसी अंतर बता सकते हैं निम्नलिखित कोड है,: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 परिवर्तनशील नहीं हैं।

उत्तर

14

जिस तरह से आप उनका उपयोग कर रहे हैं, वे मूल रूप से वही करते हैं। यही कारण है कि .pluck() को .map() का उपयोग दूसरे तर्क के रूप में स्ट्रिंग के साथ लोडाश v4.0.0 से हटा दिया गया था।

_.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] 
+1

हाँ, 'map' एक' function' या एक 'स्ट्रिंग प्राप्त कर सकते हैं:

यहाँ changelog से प्रासंगिक अंश है 'पैरामीटर के रूप में, अगर इसे' स्ट्रिंग 'प्राप्त होता है तो इसका व्यवहार' प्लक 'जैसा होगा। अन्यथा इसका व्यवहार 'Array.prototype.map' जैसा है। – gabrielperales

संबंधित मुद्दे