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

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


মান লজিয়ে, আমাদের কিছু গাড়ির তথ্য ধারণকারী একটি অবজেক্টের অ্যারে আছে নিচের মতো −

const arr = [
  {
    "group":[],
    "name": "All Makes",
    "code": ""
  },
  {
    "group":["Group A"],
    "name": "BMW",
    "code": "X821"
  },
  {
    "group":["Group B"],
    "name": "Audi",
    "code": "B216"
  },
  {
    "group":["Group B"],
    "name": "Ford",
    "code": "P385"
  },
  {
    "group":["Group B", "Group C"],
    "name": "Mercedes",
    "code": "H801"
  },
  {
    "group":["Group C"],
    "name": "Honda",
    "code": "C213"
  }
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অবজেক্টের অ্যারে নেয়। ফাংশনটি এই অ্যারে-র অবজেক্টগুলো group প্রপার্টি অনুযায়ী গ্রুপ করবে। যদি group প্রপার্টি-তে একাধিক এলিমেন্ট থাকে তবে সেই অবজেক্টটি দুটি গ্রুপে-ও দাঁড় করবে।

সুতরাং, উপরের অ্যারে-র জন্য আউটপুট হবে নিচের মতো −

const output = [
  {
    "group": "Group A",
    "cars": [
      {
        name: "BMW",
        code: "X821"
      }
    ]
  },
  {
    "group": "Group B",
    "cars": [
      {
        name: "Audi",
        code: "B216"
      },
      {
        name: "Ford",
        code: "P385"
      },
      {
        name: "Mercedes",
        code: "H801"
      }
    ]
  },
  {
    "group": "Group C",
    "cars": [
      {
        name: "Mercedes",
        code: "H801"
      },
      {
        name: "Honda",
        code: "C213"
      }
    ]
  }
];

উদাহরণ

এটির কোড হবে −

const arr = [
  {
    "group":[],
    "name": "All Makes",
    "code": ""
  },
  {
    "group":["Group A"],
    "name": "BMW",
    "code": "X821"
  },
  {
    "group":["Group B"],
    "name": "Audi",
    "code": "B216"
  },
  {
    "group":["Group B"],
    "name": "Ford",
    "code": "P385"
  },
  {
    "group":["Group B", "Group C"],
    "name": "Mercedes",
    "code": "H801"
  },
  {
    "group":["Group C"],
    "name": "Honda",
    "code": "C213"
  }
];
const groupTogether = (arr = []) => {
  let res = []
  res = Object.entries(arr.reduce((acc, { group, ...r }) => {
    group.forEach(key => acc[key] = (acc[key] || 
    []).concat({...r}));
    return acc;
  }, {}))
  return res.map(([group, arr]) => ({ group, arr }));
};
console.log(JSON.stringify(groupTogether(arr), undefined, 4));

আউটপুট

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

[
  {
    "group": "Group A",
    "arr": [
      {
        "name": "BMW",
        "code": "X821"
      }
    ]
  },
  {"group": "Group B",
  "arr": [
    {
      "name": "Audi",
      "code": "B216"
    },
    {
      "name": "Ford",
      "code": "P385"
    },
    {
      "name": "Mercedes",
      "code": "H801"
    }
  ]},
  {"group": "Group C",
  "arr": [
    {
      "name": "Mercedes",
      "code": "H801"
    },
    {
      "name": "Honda",
      "code": "C213"
    }
  ]}
]

  1. জাভাস্ক্রিপ্টে অবজেক্টের অ্যারে ID দিয়ে গ্রুপ করা

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

  3. জাভাস্ক্রিপ্টে অবজেক্ট অ্যারে থেকে অ্যারে অফ অ্যারে রূপান্তর

  4. জাভাস্ক্রিপ্টে অবজেক্ট কনভার্ট করে 2-D অ্যারে বানানো