हमारे पास इस तरह की वस्तुओं की एक सरणी है -
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 }]]पूर्व>