কম্পিউটার

জাভাস্ক্রিপ্টে দুটি ভিন্ন অ্যারে একত্রিত করুন


ধরুন আমাদের দুটি অ্যারে আছে, প্রথম অ্যারেটিতে কিছু ইভেন্টের জন্য নির্ধারিত তারিখ রয়েছে এবং দ্বিতীয় অ্যারেতে সেই ইভেন্টগুলির নাম রয়েছে, যেমন −

const dates = [
   {
      id:"1",
      date:"2017-11-07"
   },
   {
      id:"1",
      date:"2017-11-08"
   },
   {
      id:"2",
      date:"2017-11-07"
   },
   {
      id:"2",
      date:"2017-11-08"
   }
];
const names = [
   {
      id:"1",
      name:"Pervies, Peter"
   },
   {
      id:"2",
      name:"Ming, Edmund"
   }
];

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

অতএব, এই অ্যারেগুলির জন্য, আউটপুটটি −

এর মতো হওয়া উচিত
const output = [
   {
      id:"1",
      name:"Pervies, Peter",
      details:[
         {date:"2017-11-07"},
         {date:"2017-11-08"}
      ]
   },
   {
      id:"2",
      name:"Ming, Edmund",
      details:[
         {date:"2017-11-07"},
         {date:"2017-11-08"}
      ]
   }
]

উদাহরণ

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

const dates = [
   {
      id:"1",
      date:"2017-11-07"
   },
   {
      id:"1",
      date:"2017-11-08"
   },
   {
      id:"2",
      date:"2017-11-07"
   },
   {
      id:"2",
      date:"2017-11-08"
   }
];
const names = [
   {
      id:"1",
      name:"Pervies, Peter"
   },
   {
      id:"2",
      name:"Ming, Edmund"
   }
];
const combineArrays = (dates, names) => {
   const res = [];
   dates.forEach(el => {
      const bool = !res.some(item => {
         return item.id == el.id;
      });
      if(bool){
         let combined = {};
         combined.id = el.id;
         combined.details = combined.details || [];
         combined.details.push({
            "date": el.date
         });
         res.push(combined);
      }else{
         res.find(item => {
            return item.id === el.id;
         })
         .details.push({
            "date": el.date
         });
      };
   });
   res.forEach(el => {
      const bool = names.some(item => {
         return item.id === el.id;
      });
      if(bool){
         el.name = names.find(name => {
            return name.id === el.id;
         }).name;
      };
   });
   return res;
};
console.log(JSON.stringify(combineArrays(dates, names), undefined, 4));

আউটপুট

কনসোলে আউটপুট -

[
   {
      "id": "1",
      "details": [
         {
            "date": "2017-11-07"
         },
         {
            "date": "2017-11-08"
         }
      ],
      "name": "Pervies, Peter"
   },
   {
      "id": "2",
      "details": [
         {
            "date": "2017-11-07"
         },
         {
            "date": "2017-11-08"
         }
      ],
      "name": "Ming, Edmund"
   }
]

  1. জাভাস্ক্রিপ্ট JSON অ্যারে

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

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

  4. জাভাস্ক্রিপ্টে দুটি অ্যারেকে কীভাবে গুণ করা যায়?