কম্পিউটার

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


ধরুন, আমাদের কাছে এরকম একটি বস্তু আছে −

const obj = {
   "part1": [{"id": 1, "a": 50},{"id": 2, "a": 55},{"id": 4, "a": 100}],
   "part2":[{"id": 1, "b": 40}, {"id": 3, "b": 45}, {"id": 4, "b": 110}]
};

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই ধরনের একটি বস্তুতে নেয়। ফাংশনটি অবজেক্টের part1 এবং part2 একত্রিত করে এই ধরনের বস্তুর একটি বিন্যাস তৈরি করতে হবে −

const output = [
   {"id": 1, "a": 50, "b": 40},
   {"id": 2, "a": 55},
   {"id": 3, "b": 45},
   {"id": 4, "a": 100, "b": 110}
];

উদাহরণ

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

const obj = {
   "part1": [{"id": 1, "a": 50},{"id": 2, "a": 55},{"id": 4, "a": 100}],
   "part2":[{"id": 1, "b": 40}, {"id": 3, "b": 45}, {"id": 4, "b": 110}]
};
const mergeObject = (obj = {}) => {
   let result = [];
   result = Object.keys(obj).reduce(function (hash) {
      return function (r, k) {
         obj[k].forEach(function (o) {
            if (!hash[o.id]) {
               hash[o.id] = {};
               r.push(hash[o.id]);
            }
            Object.keys(o).forEach(function (l) {
               hash[o.id][l] = o[l];
            });
         });
         return r;
      };
   }(Object.create(null)), []).sort((a, b) => {
      return a['id'] − b['id'];
   });
   return result;
};
console.log(mergeObject(obj));

আউটপুট

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

[
   { id: 1, a: 50, b: 40 },
   { id: 2, a: 55 },
   { id: 3, b: 45 },
   { id: 4, a: 100, b: 110 }
]

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

  2. কিভাবে দুটি জাভাস্ক্রিপ্ট অবজেক্ট মার্জ করবেন?

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

  4. আমরা কি দুটি অ্যারেকে একটি জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করতে পারি?