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


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.