কম্পিউটার

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


ধরুন, আমাদের এইরকম একটি জাভাস্ক্রিপ্ট অ্যারে আছে −

const data = [
   {
      "dataId": "1",
      "tableName": "table1",
      "column": "firstHeader",
      "rows": [
         "a","b","c"
      ]
   },
   {
      "dataId": "2",
      "tableName": "table1",
      "column": "secondHeader",
      "rows": [
         "d","e","f",
      ]
   }, {
      "dataId": "3",
      "tableName": "table2",
      "column": "aNewFirstHeader",
      "rows": [
         1,2,3
      ]
   }
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এইরকম একটি অ্যারেতে। ফাংশনটি মূল অ্যারের উপর ভিত্তি করে অবজেক্টের একটি নতুন গোষ্ঠীবদ্ধ অ্যারে তৈরি করা উচিত।

গ্রুপ করা অ্যারেতে আলাদা, অনন্য "টেবলনাম" অবজেক্টের জন্য তাদের নিজস্ব অবজেক্টের ডেটা থাকা উচিত।

তাই শেষ পর্যন্ত, আউটপুট −

এর মত হওয়া উচিত
const output = [
   {
      "tableName": "table1",
      "column": ["firstHeader", "secondHeader"],
      "rows": [["a","b","c"], ["d","e","f"]]
   },
   {
      "tableName": "table2",
      "column": ["aNewFirstHeader"],
      "rows": [[1,2,3]]
   }
];

উদাহরণ

const arr = [
   {
      "dataId": "1",
      "tableName": "table1",
      "column": "firstHeader",
      "rows": [ "val","b","c" ]
   },
   {
      "dataId": "2",
      "tableName": "table1",
      "column": "secondHeader",
      "rows": [
         "d","e","f",
      ]
   },
   {
      "dataId": "3",
      "tableName": "table2",
      "column": "aNewFirstHeader",
      "rows": [
         1,2,3
      ]
   }
];
const groupArray = (arr = []) => {
   const res = arr.reduce((obj => (acc, val) => {
      let item = obj.get(val.tableName);
      if (!item) {
         item = {
            tableName: val.tableName, column: [], rows: []
         }
         obj.set(val.tableName, item); acc.push(item);
      };
      item.column.push(val.column); item.rows.push(val.rows);
      return acc;
   })(new Map), []);
   return res;
};
console.log(JSON.stringify(groupArray(arr), undefined, 4));

আউটপুট

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

[
   {
      "tableName": "table1",
      "column":
      [
         "firstHeader",
         "secondHeader"
      ],
      "rows": [
         [
            "val", "b", "c"
         ],
         [
            "d", "e", "f"
         ]
      ]
   }, {
      "tableName": "table2",
      "column": [
            "aNewFirstHeader"
         ],
         "rows": [
         [
            1, 2, 3
         ]
      ]
   }
]

  1. জাভাস্ক্রিপ্টে অ্যারে শিফট()

  2. জাভাস্ক্রিপ্টে অ্যারে রিভার্স()

  3. জাভাস্ক্রিপ্টে অ্যারে ডি-স্ট্রাকচারিং।

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