লোড্যাশ: অবজেক্ট বৈশিষ্ট্যের অ্যারে থেকে মানগুলির একটি অ্যারে পান


161

আমি নিশ্চিত এটি লোড্যাশ ডক্সের ভিতরেই কোথাও রয়েছে তবে আমি সঠিক সংমিশ্রণটি খুঁজে পাচ্ছি না।

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'));

উত্তর:


320

সংস্করণ v4.x যেহেতু আপনার ব্যবহার করা উচিত _.map:

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

এইভাবে এটি নেটিভ অ্যারে.প্রোটোটাইপ.ম্যাপ পদ্ধতির সাথে সম্পর্কিত যেখানে আপনি লিখবেন (ES2015 সিনট্যাক্স):

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

V4.x এর আগে আপনি _.pluckএকইভাবে ব্যবহার করতে পারেন :

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

এর চেয়েও অনেক ধন্যবাদ_.toArray(_.mapValues(users, 'id'))
— ইয়ারগনউহ

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

@ ডিএফএসকিউ, আউটপুট অ্যারেতে যুক্ত করার সময় এটি ভাল সমাধান। ধন্যবাদ!
— টেড Corleone

17

খাঁটি জেএস সহ:

var userIds = users.map( function(obj) { return obj.id; } );

3
আপনি এটিকে ভারি ইউজারআইডিএস = ব্যবহারকারী.ম্যাপ (আপত্তি => আপত্তি.আইডি) -এ সহজ করতে পারবেন;
— কামিল নাজা

আমার স্তরে users.map(({id})=>id)
— উঠুন

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

এটি ES6 এর মাধ্যমে পাওয়ার সহজ এবং আরও দ্রুততর উপায়

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
এটি একবারে অ্যারের একটি উপাদান থেকে লুপ করা। একটি অ্যারে হ'ল সূচিগুলির একটি ডেটা-কাঠামো (এস) এর সাথে কিছু ডেটা-টাইপ থেকে মান থাকে (এটি উদাহরণস্বরূপ এটি অবজেক্টস)। অ্যারের সূচকের উপাদানগুলির মূল্যায়ন করে কেবলমাত্র বস্তুগুলি অ্যাক্সেস করা যায়। লুপটি এটি অর্জন করে এমন কাঠামো।
— ব্যবহারকারী 1789573
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.