কম্পিউটার

জাভাস্ক্রিপ্টে এর একটি ফিল্ড মার্জ করার সময় কীভাবে একটি অ্যারে কমাতে হয়


বিবেচনা করুন, আমাদের কাছে নিম্নলিখিত অ্যারে অবজেক্ট রয়েছে -

const arr = [{
   id: 121,
   hobby: 'cycling'
}, {
   id: 125,
   hobby: 'jogging'
}, {
   id: 129,
   hobby: 'reading'
}, {
   id: 121,
   hobby: 'writing'
}, {
   id: 121,
   hobby: 'playing football'
}, {
   id: 125,
   hobby: 'cooking'
}, {
   id: 129,
   hobby: 'horse riding'
}];

ধরা যাক, আমাদের এমন একটি ফাংশন লিখতে হবে যা এমন একটি অ্যারে নেয় এবং এটিকে সাধারণ আইডি সম্পত্তির উপর ভিত্তি করে মার্জ করে এবং শখের সম্পত্তির জন্য আমরা এটিকে একটি অ্যারে বরাদ্দ করি এবং সেখানে নির্দিষ্ট আইডিগুলির জন্য সমস্ত শখ রাখি৷

আমরা Array.prototype.reduce() পদ্ধতি ব্যবহার করব অ্যারের উপর পুনরাবৃত্তি করতে এবং একই সময়ে একই সূচকগুলির সাথে এন্ট্রিগুলিকে একত্রিত করতে৷

এটি করার জন্য কোড হবে −

উদাহরণ

const arr = [{
   id: 121,
   hobby: 'cycling'
}, {
   id: 125,
   hobby: 'jogging'
}, {
   id: 129,
   hobby: 'reading'
}, {
   id: 121,
   hobby: 'writing'
}, {
   id: 121,
   hobby: 'playing football'
}, {
   id: 125,
   hobby: 'cooking'
}, {
   id: 129,
   hobby: 'horse riding'
}];
const mergeArray = (arr) => {
   return arr.reduce((acc, val) => {
      const ind = acc.findIndex(item => item.id === val.id);
      if(ind !== -1){
         acc[ind].hobby.push(val.hobby);
      }else{
         acc.push({
            id: val.id,hobby: [val.hobby]
      });
   };
   return acc;
}, []);
};
console.log(mergeArray(arr));

আউটপুট

কনসোলে আউটপুট হবে −

[
   { id: 121, hobby: [ 'cycling', 'writing', 'playing football' ] },
   { id: 125, hobby: [ 'jogging', 'cooking' ] },
   { id: 129, hobby: [ 'reading', 'horse riding' ] }
]

  1. জাভাস্ক্রিপ্টে অ্যারেকে সেটে কীভাবে রূপান্তর করবেন?

  2. কিভাবে জাভাস্ক্রিপ্ট অ্যারে কমাতে?

  3. কিভাবে জাভাস্ক্রিপ্টে আইডি দ্বারা অবজেক্টের অ্যারে গ্রুপ করবেন?

  4. বোতাম ক্লিকের বিপরীতে জাভাস্ক্রিপ্ট অ্যারে আইটেমগুলিকে একবারে কীভাবে প্রদর্শন করবেন?