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

जावास्क्रिप्ट में नेस्टेड सरणी को समूहीकृत करना

<घंटा/>

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

const arr = [
   {
      value1:[1,2],
      value2:[{type:'A'}, {type:'B'}]
   },
   {
      value1:[3,5],
      value2:[{type:'B'}, {type:'B'}]
   }
];

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो ऐसी एक सरणी लेता है। हमारे फ़ंक्शन को तब एक सरणी तैयार करनी चाहिए जहां डेटा को ऑब्जेक्ट की "प्रकार" संपत्ति के अनुसार समूहीकृत किया जाता है।

इसलिए, उपरोक्त सरणी के लिए, आउटपुट इस तरह दिखना चाहिए -

const output = [
   {type:'A', value: [1,2]},
   {type:'B', value: [3,5]}
];

उदाहरण

इसके लिए कोड होगा -

const arr = [
   {
      value1:[1,2],
      value2:[{type:'A'}, {type:'B'}]
   },
   {
      value1:[3,5],
      value2:[{type:'B'}, {type:'B'}]
   }
];
const groupValues = (arr = []) => {
   const res = [];
   arr.forEach((el, ind) => {
      const thisObj = this;
      el.value2.forEach(element => {
         if (!thisObj[element.type]) {
            thisObj[element.type] = {
               type: element.type,
               value: []
            }
            res.push(thisObj[element.type]);
         };
         if (!thisObj[ind + '|' + element.type]) {
            thisObj[element.type].value =
            thisObj[element.type].value.concat(el.value1);
            thisObj[ind + '|' + element.type] = true;
         };
      });
   }, {})
   return res;
};
console.log(groupValues(arr));

आउटपुट

और कंसोल में आउटपुट होगा -

[
   { type: 'A', value: [ 1, 2 ] },
   { type: 'B', value: [ 1, 2, 3, 5 ] }
]

  1. array.flatMap() जावास्क्रिप्ट में

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

  1. जावास्क्रिप्ट में ऐरे स्लाइस ()

    जावास्क्रिप्ट ऐरे स्लाइस () विधि चयनित वस्तुओं की नई सरणी को एक बड़े सरणी में लौटाती है। यह मूल सरणी को नहीं बदलता है। सरणी स्लाइस () विधि के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना { फ़ॉन्ट-आकार:20px; फ़ॉन्ट-वजन:500;

  1. 2 वस्तुओं की तुलना करते समय समूहबद्ध सरणी नेस्टेड मान - जावास्क्रिप्ट

    मान लीजिए, हमारे पास निम्नलिखित JSON ऑब्जेक्ट है - const input = {    "before": {      "device": [        {          "id": "1234",          "price": "