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

जावास्क्रिप्ट में ऐरे ऑब्जेक्ट लिस्ट के आधार पर ऑब्जेक्ट को समूह में हेरफेर करें

<घंटा/>

मान लीजिए, हमारे पास वस्तुओं की एक सरणी है जिसमें कुछ कारों के बारे में जानकारी है जैसे -

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 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. जावास्क्रिप्ट में आईडी द्वारा वस्तुओं की सरणी कैसे समूहित करें?

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

  1. जावास्क्रिप्ट ऑब्जेक्ट को नए ऐरे में फ़ॉर्मेट करना

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

  1. जावास्क्रिप्ट में ऑब्जेक्ट को 2-डी सरणी में कनवर्ट करना

    मान लीजिए हमारे पास एक वस्तु है जिसमें किसी शहर के मौसम के बारे में जानकारी है - const obj = {    city: "New Delhi",    maxTemp: 32,    minTemp: 21,    humidity: 78,    aqi: 456,    day: 'Tuesday', }; हमें एक जावास्क्रिप्