কম্পিউটার টিউটোরিয়াল

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

ধরুন, আমাদের নিচের মতো একটি অবজেক্ট আছে:

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. জাভাস্ক্রিপ্টে দুটি অ্যারে থেকে একটি অবজেক্ট তৈরি করা