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

JavaScript में नेस्टेड सरणी को समूहित करना


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

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

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

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

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. JavaScript Array.flatMap(): मैप और फ्लैटेन एक साथ JavaScript Array.flatMap(): मैप और फ्लैटेन एक साथ

    Array.prototype.flatMap() मेथड पहले प्रत्येक तत्व पर मैप फंक्शन लागू करता है, फिर परिणाम को एक स्तर तक फ्लैट करता है। यह arr.map(...).flat() के बराबर है लेकिन थोड़ा अधिक कुशल है। उदाहरण x); fillEle.innerHTML = फ्लैट एरे:<br>; for (const x of flat.entries()) { f

  1. JavaScript Array.slice(): एरे का भाग निकालें JavaScript Array.slice(): एरे का भाग निकालें

    Array.prototype.slice() मेथड एरे के एक भाग को निकालकर नया एरे लौटाता है। मूल एरे अपरिवर्तित रहता है। ऋणात्मक इंडेक्स अंत से गिनते हैं। उदाहरण { // slice(1, 4) = इंडेक्स 1, 2, 3 (4 शामिल नहीं) const sliced = arr.slice(1, 4); fillEle.innerHTML = slice(1, 4) परिणाम: + slice

  1. JavaScript में 2 ऑब्जेक्ट्स की तुलना करते हुए सरणी के नेस्टेड मान को ग्रुप करना JavaScript में 2 ऑब्जेक्ट्स की तुलना करते हुए सरणी के नेस्टेड मान को ग्रुप करना

    मान लीजिए हमारे पास निम्नलिखित JSON ऑब्जेक्ट है: const input = { before: { device: [ { id: 1234, price: 10, features: [ { name: samsung, price: 10 }, { name: Apple, price: 20 } ] }, { id: 2154, price: 20,