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

दो गुणों द्वारा सरणी में समूह मान JavaScript

<घंटा/>

हमारे पास इस तरह की वस्तुओं की एक सरणी है -

const arr =[{मान:12, गैप:1}, {वैल्यू:13, गैप:1}, {वैल्यू:14, गैप:1}, {वैल्यू:15, गैप:1}, { वैल्यू:19, गैप:2}, {वैल्यू:21, गैप:1}, {वैल्यू:22, गैप:1}, {वैल्यू:23, गैप:1}, {वैल्यू:27, गैप:1}, { वैल्यू:31, गैप:4}, {वैल्यू:35, गैप:4}, {वैल्यू:39, गैप:4}, {वैल्यू:43, गैप:1}, {वैल्यू:50, गैप:1}, { वैल्यू:51, गैप:1}, {वैल्यू:52, गैप:1}, {वैल्यू:55, गैप:1}, {वैल्यू:57, गैप:1},];

हमें एक फ़ंक्शन लिखने की आवश्यकता होती है जो इस सरणी में लेता है और एक नया सरणी देता है जहां उन सभी लगातार वस्तुओं का मूल्य पिछले ऑब्जेक्ट के मूल्य के योग के बराबर होता है और अंतराल को एक उप-सरणी में समूहीकृत किया जाना चाहिए।

उदाहरण के लिए - मान 12 वाली वस्तु में अंतराल 1 है और उसके अगले वस्तु का मूल्य 13 है, इसलिए उन्हें समूहीकृत किया जाना चाहिए और उनके साथ मूल्य 14 और 15 वाली वस्तु, और इस तरह।

अब, समस्या समझ में आने के बाद, इस समस्या के लिए कोड लिखने के लिए आगे बढ़ते हैं। वांछित सरणी बनाने के लिए हम Array.prototype.reduce() विधि का उपयोग करेंगे -

उदाहरण

const arr =[{मान:12, गैप:1}, {वैल्यू:13, गैप:1}, {वैल्यू:14, गैप:1}, {वैल्यू:15, गैप:1}, { वैल्यू:19, गैप:2}, {वैल्यू:21, गैप:1}, {वैल्यू:22, गैप:1}, {वैल्यू:23, गैप:1}, {वैल्यू:27, गैप:1}, { वैल्यू:31, गैप:4}, {वैल्यू:35, गैप:4}, {वैल्यू:39, गैप:4}, {वैल्यू:43, गैप:1}, {वैल्यू:50, गैप:1}, { वैल्यू:51, गैप:1 }, {वैल्यू:52, गैप:1}, {वैल्यू:55, गैप:1}, {वैल्यू:57, गैप:1 },]; कॉन्स्ट ग्रुपअरे =एरर => {रिटर्न एरर। रिड्यूस ((एसीसी, वैल, इंड, एरे) => {// संचित डेटा और संचित डेटा का अंतिम सूचकांक {डेटा, करंटइंडेक्स} =एसीसी; // वर्तमान ऑब्जेक्ट गुण कॉन्स्ट {वैल्यू, गैप} =वैल; // द पिछले ऑब्जेक्ट गुण कॉन्स्ट वी =एआर [इंड -1]?। वैल्यू; कॉन्स्ट जी =एआर [इंड -1]?। गैप; अगर (इंड ===0 || वैल्यू! ==वी + जी) {// रिकॉर्डिंग अंतिम वस्तु की अनुक्रमणिका और नई उपसरणी को धक्का देना सूचकांक =data.push ([वैल]) - 1; ए, करंटइंडेक्स:इंडेक्स}; }; डेटा [वर्तमान इंडेक्स]। पुश (वैल); वापसी {डेटा, करंटइंडेक्स}; }, {डेटा:[], करेंटइंडेक्स:0}).डेटा;}कंसोल.लॉग(ग्रुपअरे(गिरफ्तार));

आउटपुट

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

[ [{मान:12, गैप:1}, {वैल्यू:13, गैप:1}, {वैल्यू:14, गैप:1}, {वैल्यू:15, गैप:1}], [{ वैल्यू:19, गैप:2}, {वैल्यू:21, गैप:1}, {वैल्यू:22, गैप:1}, {वैल्यू:23, गैप:1}], [{वैल्यू:27, गैप:1}], [{मान:31, गैप:4}, {मान:35, गैप:4}, {वैल्यू:39, गैप:4}, {वैल्यू:43, गैप:1 }], [{वैल्यू:50, गैप:1 }, {मान:51, गैप:1 }, {वैल्यू:52, गैप:1 }], [{वैल्यू:55, गैप:1 }], [{वैल्यू:57, गैप:1 }]] 
  1. जावास्क्रिप्ट सरणी। मान ()

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

  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" />