"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Array.reduce() को समझना

Array.reduce() को समझना

2024-08-28 को प्रकाशित
ब्राउज़ करें:975

Understanding Array.reduce()

परिचय

जावास्क्रिप्ट पर एक परिचय पाठ्यक्रम लेते समय और ऐरे के सभी विभिन्न तरीकों के बारे में सीखते हुए। मैं कम करने की विधि की वास्तविक शक्ति को ठीक से समझ नहीं पाया था और दूसरी बार इस पर वापस जाने के बाद ही अब मुझे एहसास हो रहा है कि यह विधि वास्तव में कितनी उपयोगी है। मुझे आशा है कि लेख कुछ लोगों के लिए यह स्पष्ट कर देगा कि यह विधि कैसे काम करती है और इसका उपयोग कब करना है।

विधि

Array.prototype.reduce(callbackFunction)
Array.prototype.reduce(कॉलबैकफंक्शन, इनिशियलवैल्यू)

यह विधि वास्तव में क्या करती है?

कम() विधि कॉलबैक फ़ंक्शन का उपयोग करके सरणी के प्रत्येक तत्व को संसाधित करती है, परिणाम को एक मान में जमा करती है। यदि प्रारंभिक मान प्रदान किया जाता है, तो इसका उपयोग प्रारंभिक बिंदु के रूप में किया जाता है; अन्यथा, पहले सरणी तत्व का उपयोग किया जाता है, और पुनरावृत्ति दूसरे तत्व से शुरू होती है।

कॉलबैक फ़ंक्शन पैरामीटर

कॉलबैकफंक्शन(संचायक, करंटवैल्यू, करंटइंडेक्स, ऐरे){}

बिजली संचयक यंत्र

पिछले पुनरावृत्ति से संचित परिणाम या यदि प्रदान किया गया हो तो प्रारंभिक मूल्य।

वर्तमान मूल्य

संसाधित किए जा रहे वर्तमान सरणी तत्व का मान।

वर्तमान सूचकांक

वर्तमान तत्व का सूचकांक, यदि प्रारंभिक मान प्रदान किया गया है तो 0 से शुरू होता है, अन्यथा 1.

सरणी

वह सरणी जिस पर कम() विधि निष्पादित की जा रही है।

आरंभिक मूल्य

प्रारंभिक मान के बिना कम विधि का उपयोग करते समय, कॉलबैक फ़ंक्शन सरणी का पहला तत्व लेगा और इसे संचायक के रूप में प्रारंभ करेगा और फिर शेष सरणी के माध्यम से पुनरावृत्त करेगा।

मामलों का प्रयोग करें

कम विधि का उपयोग करते समय आपके सामने सबसे आम उदाहरण एक सरणी का योग है।

const ages = [23, 15, 45, 13, 66, 54, 38];
let sumOfAges = ages.reduce(function(sumOfAges, currentAge){
    sumOfAges = sumOfAges   currentAge;
    return sumOfAges;
}); // 254

हालाँकि हाँ, यह वही है जिसके लिए कम करने की विधि अच्छी है और इसमें अच्छा है, यह और भी बहुत कुछ कर सकता है।

किसी समूह की अधिकतम आयु प्राप्त करना

const ages = [23, 15, 45, 13, 66, 54, 38];
let oldestPerson = ages.reduce(function(maxAge, currentAge){
    if(currentAge>maxAge){
        maxAge = currentAge;
    }
    return maxAge;
}); // 66

यहां हम सरणी में मिलने वाली उच्चतम आयु को बचाने के लिए कम करने की विधि का उपयोग कर रहे हैं और पूरे सरणी के माध्यम से पुनरावृत्त होने पर उस मान को वापस कर रहे हैं।

किसी सरणी में डुप्लिकेट हटाना

const store = ['apple', 'pear', 'apple', 'orange', 'apple', 'pear'];
let itemCatalogue = store.reduce(function(uniqueStoreItems, currentItem){
    if(!uniqueStoreItems.includes(currentItem)){
        uniqueStoreItems.push(currentItem);
    }
    return uniqueStoreItems;
}, []); // ['apple', 'pear', 'orange']

महत्वपूर्ण यहां ध्यान दें कि कम करने की विधि में प्रारंभिक मूल्य के लिए हम एक खाली सरणी की आपूर्ति कर रहे हैं, []। इसका मतलब यह है कि संचायक अब एक सरणी है, और हमारा कॉल बैक फ़ंक्शन केवल उन आइटम्स को पुश करता है जो पहले से ही उस सरणी में नहीं हैं। परिणामस्वरूप हमने डुप्लिकेट हटा दिए हैं।

किसी सारणी में आइटमों की गिनती प्राप्त करना

const store = ['apple', 'pear', 'apple', 'orange', 'apple', 'pear'];
let itemCount = store.reduce(function(count, currentItem){
    count[currentItem] = (count[currentItem] || 0)   1;
    return count;
}, {}); // { apple: 3, pear: 2, orange: 1 }

महत्वपूर्ण यहां ध्यान देने योग्य बात यह है कि प्रारंभिक मान एक खाली वस्तु है। जैसे ही हम स्टोर में आइटम देखते हैं, हम आइटम को गिनती के साथ भर देते हैं।

निष्कर्ष

सबसे पहले अगर आप यहां तक ​​पहुंच गए हैं तो पढ़ने के लिए धन्यवाद! इस लेख को लिखने का मेरा मुख्य लक्ष्य कम करने की विधि के बारे में अपनी समझ को मजबूत करना था और मुझे आशा है कि शायद आपने यहां भी कुछ नया सीखा है! कम करने की विधि में वास्तव में बहुत अच्छे अनुप्रयोग हैं और उपयोग करने में यह वास्तव में साफ-सुथरा है। क्या आपके पास विधि के साथ कोई अन्य उपयोग के मामले या मज़ेदार तरकीबें हैं? मुझे जानने में खुशी होगी!

विज्ञप्ति वक्तव्य इस लेख को इस पर पुन: पेश किया गया है: https://dev.to/avellent/understanding-arrayreduce-1lia?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3