LoDash: ऑब्जेक्ट गुण की एक सरणी से मूल्यों की एक सरणी प्राप्त करें


161

मुझे यकीन है कि यह LoDash डॉक्स के अंदर कहीं है, लेकिन मुझे सही संयोजन नहीं मिल रहा है।

var users = [{
      id: 12,
      name: Adam
   },{
      id: 14,
      name: Bob
   },{
      id: 16,
      name: Charlie
   },{
      id: 18,
      name: David
   }
]

// how do I get [12, 14, 16, 18]
var userIds = _.map(users, _.pick('id'));

जवाबों:


321

संस्करण v4.x के बाद से आपको उपयोग करना चाहिए _.map:

_.map(users, 'id'); // [12, 14, 16, 18]

इस तरह यह मूल Array.prototype.map विधि से मेल खाती है जहाँ आप लिखेंगे (ES2015 सिंटैक्स):

users.map(user => user.id); // [12, 14, 16, 18]

V4.x से पहले आप _.pluckउसी तरह इस्तेमाल कर सकते हैं :

_.pluck(users, 'id'); // [12, 14, 16, 18]

की तुलना में बहुत बेहतर धन्यवाद_.toArray(_.mapValues(users, 'id'))
YarGnawh

1
मैं आईडी के साथ नाम कैसे प्राप्त कर सकता हूं, मेरा मतलब है कि हम दो से अधिक मूल्य कैसे प्राप्त कर सकते हैं?
जॉन

6
@ जॉन users.map(({ id, name }) => ({ id, name }))या कम गूढ़ users.map(user => ({ id: user.id, name: user.name }))। उसी में lodash: _.map(users, ({ id, name }) => ({ id, name }))
dfsq

@dfsq, आउटपुट सरणी में वस्तुओं को जोड़ते समय इसका अच्छा समाधान है। धन्यवाद!
टेड कोरलियोन


15

नए लॉश रिलीज में v4.0.0 के _.pluck पक्ष में हटा दिया गया है_.map

तब आप इसका उपयोग कर सकते हैं:

_.map(users, 'id'); // [12, 14, 16, 18]

आप जीथब चांगेलोग में देख सकते हैं


4

और अगर आपको प्रत्येक ऑब्जेक्ट से कई गुण निकालने की आवश्यकता है, तो

let newArr = _.map(arr, o => _.pick(o, ['name', 'surname', 'rate']));

2

ईएस 6 के माध्यम से इसे प्राप्त करने का सरल और तेज़ तरीका

let newArray = users.flatMap(i => i.ID) // -> [ 12, 13, 14, 15 ]

-2

यदि आप देशी जावास्क्रिप्ट का उपयोग कर रहे हैं तो आप इस कोड का उपयोग कर सकते हैं -

let ids = users.map(function(obj, index) {

    return obj.id;
})

console.log(ids); //[12, 14, 16, 18]

ओपी ने स्पष्ट रूप से एक लोधश समाधान के लिए कहा।
एरियल वेनबर्गर

-17

यह आपको वह देगा जो आप पॉप-अप में चाहते हैं।

for(var i = 0; i < users.Count; i++){
   alert(users[i].id);  
}

2
यह एक समय में सरणी एक तत्व के माध्यम से लूप करना है। एक सरणी सूचकांक की एक डेटा-संरचना है, जिसमें कुछ डेटा-प्रकार से मानों के साथ (इस उदाहरण में यह ऑब्जेक्ट है)। वस्तुओं को केवल सरणी के सूचकांक में तत्वों का मूल्यांकन करके पहुँचा जा सकता है। लूप वह संरचना है जो इसे प्राप्त करता है।
user1789573
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.