Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

एक जावास्क्रिप्ट सरणी समूहित करें

<घंटा/>

मान लीजिए, हमारे पास इस तरह की एक जावास्क्रिप्ट सरणी है -

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. जावास्क्रिप्ट में ऐरे रिवर्स ()

    जावास्क्रिप्ट ऐरे रिवर्स () फ़ंक्शन एक सरणी में तत्वों के क्रम को उलट देता है सरणी रिवर्स () फ़ंक्शन के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=

  1. जावास्क्रिप्ट में ऐरे डी-स्ट्रक्चरिंग।

    एक सरणी से अनपैक मानों को नष्ट करना। जावास्क्रिप्ट में सरणी डी-स्ट्रक्चरिंग के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scal

  1. जावास्क्रिप्ट में आईडी द्वारा वस्तुओं की सरणी कैसे समूहित करें?

    जावास्क्रिप्ट में आईडी के आधार पर वस्तुओं के समूह के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <titl