2012-12-30 21 views
11

क्या आपको पता है कि सरणी reduce फ़ंक्शन टाइपस्क्रिप्ट में क्या करता है? क्या आप उपयोग का एक सरल उदाहरण प्रदान कर सकते हैं?टाइपस्क्रिप्ट और सरणी फ़ंक्शन

मैं Google और TypeScript language specification पर खोज करता हूं लेकिन कोई सभ्य स्पष्टीकरण और उदाहरण नहीं ढूंढ सका।

उत्तर

16

यह वास्तव में टाइपस्क्रिप्ट के लिए विशिष्ट कुछ होने के बजाय जावास्क्रिप्ट सरणी reduce फ़ंक्शन है।

जैसा कि the docs में वर्णित है: एक संचयक और बाएं से दाएं) के प्रत्येक मान को एक मान के लिए कम करने के लिए एक फ़ंक्शन को लागू करें।

यहाँ एक टाइपप्रति उदाहरण जो एक सरणी के मूल्यों का सार है:

total = [0, 1, 2, 3].reduce((a, b) => a + b); 
alert(total); 

alert बॉक्स 6 दिखाएगा।

+1

आह होना पड़ सकता! यही कारण है कि मुझे टाइपस्क्रिप्ट के संबंध में कोई जानकारी नहीं मिली। आपकी मदद के लिए बहुत धन्यवाद! – Tom

6

टाइपस्क्रिप्ट जेनरिक के साथ आप ऐसा कुछ कर सकते हैं।

class Person { 
    constructor (public Name : string, public Age: number) {} 
} 

var list = new Array<Person>(); 
list.push(new Person("Baby", 1)); 
list.push(new Person("Toddler", 2)); 
list.push(new Person("Teen", 14)); 
list.push(new Person("Adult", 25)); 

var oldest_person = list.reduce((a, b) => a.Age > b.Age ? a : b); 
alert(oldest_person.Name); 
1

अन्य उत्तरों के अलावा बस एक नोट।

एक प्रारंभिक मूल्य कम करने के लिए आपूर्ति की है, तो कभी-कभी अपने प्रकार निर्दिष्ट किया जाना चाहिए, अर्थात्: -

a.reduce(fn, []) 

a.reduce〈string[]〉(fn, []) 

या

a.reduce(fn, 〈string[]〉[]) 
+1

स्टैक ओवरव्लो में आपका स्वागत है: यदि आप कोड, एक्सएमएल या डेटा नमूने पोस्ट करते हैं, तो कृपया टेक्स्ट एडिटर में उन पंक्तियों को हाइलाइट करें और संपादक टूलबार पर "कोड नमूने" बटन ({}) पर क्लिक करें या अपने कीबोर्ड पर Ctrl + K का उपयोग करके अच्छी तरह से प्रारूप और वाक्यविन्यास इसे हाइलाइट करें! – WhatsThePoint

+1

यह प्रश्न का उत्तर नहीं प्रदान करता है। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (https://stackoverflow.com/help/whats-reputation) हो जाने पर आप [किसी भी पोस्ट पर टिप्पणी कर सकेंगे] (https://stackoverflow.com/help/privileges/comment); इसके बजाय, [उन उत्तरों को प्रदान करें जिन्हें पूछताछ से स्पष्टीकरण की आवश्यकता नहीं है] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-कर-बजाय)। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/18087822) – Melebius

+1

स्वीकृत उत्तर यह बताने के लिए छोड़ देता है कि संचयक को किसी भी वस्तु के साथ शुरू किया जा सकता है और इसलिए यह एक अलग प्रकार का भी हो सकता है। –

संबंधित मुद्दे