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

इफ़ेक्ट-टीएस में फ़िल्टरिंग विकल्प: एक व्यावहारिक मार्गदर्शिका

2024-11-06 को प्रकाशित
ब्राउज़ करें:292

Filtering Options in Effect-TS: A Practical Guide

इफेक्ट-टीएस एक विकल्प के अंदर मूल्यों को फ़िल्टर करने के लिए विभिन्न तरीके प्रदान करता है, जिससे आप वैकल्पिक मूल्य पर परिवर्तन, विधेय या जांच लागू कर सकते हैं। ये फ़ंक्शन यह सुनिश्चित करने में मदद करते हैं कि कोई नहीं मान या जो निर्दिष्ट शर्तों को पूरा नहीं करते हैं उन्हें हटाते समय केवल प्रासंगिक डेटा बरकरार रखा जाता है। इस लेख में, हम फ़िल्टरिंग विकल्पों के लिए चार प्रमुख कार्यों का पता लगाएंगे: O.partitionMap, O.filterMap, O.filter, और O.exists।

उदाहरण 1: O.partitionMap के साथ एक विकल्प का विभाजन

अवधारणा

O.partitionMap फ़ंक्शन आपको मैपिंग फ़ंक्शन के आधार पर एक विकल्प को दो विकल्पों के टुपल में विभाजित करने की अनुमति देता है जो एक या तो लौटाता है। या तो.बाएं मान पहले विकल्प में विभाजित होते हैं, जबकि या तो.दाएं मान दूसरे विकल्प में जाते हैं। यदि मूल विकल्प कोई नहीं है, तो दोनों विभाजन कोई नहीं हैं।

कोड

function filtering_ex01() {
  const some = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value
  const toEither = (n: number) => (n % 2 === 0 ? E.left(n) : E.right(n));

  console.log(pipe(some, O.partitionMap(toEither))); // Output: [None, Some(1)] (1 is odd, so it goes to the right)
  console.log(pipe(none, O.partitionMap(toEither))); // Output: [None, None] (since the Option is None)
}

स्पष्टीकरण

  • पाइप(कुछ, O.partitionMap(toEither)): चूँकि 1 विषम है, toEither फ़ंक्शन E.right(1) लौटाता है, 1 को दूसरे विकल्प में रखता है, जिसके परिणामस्वरूप [कोई नहीं, कुछ(1) होता है ].
  • पाइप(कोई नहीं, O.partitionMap(toEither)): चूंकि मूल विकल्प कोई नहीं है, दोनों विभाजन कोई नहीं हैं, जिसके परिणामस्वरूप [कोई नहीं, कोई नहीं] होता है।

यह फ़ंक्शन तब उपयोगी होता है जब आपको एक मैपिंग लागू करने की आवश्यकता होती है जो मूल्यों को वर्गीकृत करती है, साथ ही उन्हें दो समूहों में अलग करती है - वे जो किसी शर्त को पूरा करते हैं और जो नहीं करते हैं।

उदाहरण 2: O.filterMap के साथ मैपिंग और फ़िल्टरिंग

अवधारणा

O.filterMap फ़ंक्शन एक विकल्प के अंदर मान पर एक परिवर्तन फ़ंक्शन लागू करता है। यदि फ़ंक्शन कुछ लौटाता है, तो मान बरकरार रहता है; यदि यह कोई नहीं लौटाता है, तो मान फ़िल्टर कर दिया जाता है। यदि मूल विकल्प कोई नहीं है, तो परिणाम कोई नहीं रहता है।

कोड

function filtering_ex02() {
  const some = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value
  const toEven = (n: number) => (n % 2 === 0 ? O.some(n) : O.none());

  console.log(pipe(some, O.filterMap(toEven))); // Output: None (since 1 is not even)
  console.log(pipe(O.some(2), O.filterMap(toEven))); // Output: Some(2) (since 2 is even)
  console.log(pipe(none, O.filterMap(toEven))); // Output: None (since the original Option is None)
}

स्पष्टीकरण

  • पाइप(कुछ, O.filterMap(toEven)): चूंकि 1 सम नहीं है, toEven फ़ंक्शन कोई नहीं लौटाता है, और परिणाम कोई नहीं है।
  • pipe(O.some(2), O.filterMap(toEven)): मान 2 सम है, इसलिए toEven फ़ंक्शन कुछ(2) लौटाता है, और परिणाम कुछ(2) होता है।
  • ]
  • पाइप(कोई नहीं, O.filterMap(toEven)): चूंकि मूल विकल्प कोई नहीं है, परिणाम कोई नहीं है।

यह फ़ंक्शन तब सहायक होता है जब आप विशिष्ट स्थितियों के आधार पर किसी विकल्प के अंदर मान को बदलना और फ़िल्टर करना चाहते हैं।

उदाहरण 3: O.filter का उपयोग करके किसी विकल्प को विधेय के साथ फ़िल्टर करना

अवधारणा

O.filter फ़ंक्शन जांच करता है कि किसी विकल्प के अंदर का मान किसी दिए गए विधेय को संतुष्ट करता है या नहीं। यदि विधेय संतुष्ट है, तो यह मूल विकल्प लौटाता है; अन्यथा, यह कोई नहीं लौटाता है। यदि मूल विकल्प कोई नहीं है, तो यह कोई नहीं रहता है।

कोड

function filtering_ex03() {
  const some = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value
  const isEven = (n: number) => n % 2 === 0;

  console.log(pipe(some, O.filter(isEven))); // Output: None (since 1 is not even)
  console.log(pipe(O.some(2), O.filter(isEven))); // Output: Some(2) (since 2 is even)
  console.log(pipe(none, O.filter(isEven))); // Output: None (since the original Option is None)
}

उदाहरण 4: O.exists के साथ एक विधेय की जाँच करना

अवधारणा

O.exists फ़ंक्शन जांच करता है कि क्या किसी विकल्प के अंदर का मान किसी विधेय को संतुष्ट करता है, यदि ऐसा होता है तो सही लौटाता है, और यदि नहीं करता है तो गलत लौटाता है। यदि विकल्प कोई नहीं है, तो यह गलत रिटर्न देता है।

कोड

function filtering_ex04() {
  const some = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value
  const isEven = (n: number) => n % 2 === 0;

  console.log(pipe(some, O.exists(isEven))); // Output: false (since 1 is not even)
  console.log(pipe(O.some(2), O.exists(isEven))); // Output: true (since 2 is even)
  console.log(pipe(none, O.exists(isEven))); // Output: false (since the original Option is None)
}

स्पष्टीकरण

  • पाइप(कुछ, O.exists(isEven)): चूंकि 1 सम नहीं है, विधेय संतुष्ट नहीं है, इसलिए परिणाम गलत है।
  • पाइप(O.some(2), O.exists(isEven)): मान 2 विधेय को संतुष्ट करता है, इसलिए परिणाम सत्य है।
  • पाइप(कोई नहीं, O.exists(isEven)): चूंकि विकल्प कोई नहीं है, परिणाम गलत है।

यह फ़ंक्शन तब उपयोगी होता है जब आपको यह निर्धारित करने के लिए त्वरित जांच की आवश्यकता होती है कि विकल्प के अंदर का मूल्य विकल्प को परिवर्तित या फ़िल्टर किए बिना किसी शर्त को पूरा करता है या नहीं।

निष्कर्ष

इफेक्ट-टीएस में फ़िल्टरिंग विकल्प स्थितियों या परिवर्तनों के आधार पर वैकल्पिक मूल्यों के लचीले प्रबंधन की अनुमति देता है। चाहे आप O.partitionMap के साथ मानों को विभाजित कर रहे हों, O.filterMap के साथ परिवर्तन लागू कर रहे हों, O.filter के साथ विधेय की जाँच कर रहे हों, या बस O.exists के साथ स्थितियों की पुष्टि कर रहे हों, ये उपकरण विकल्पों को प्रबंधित करने के तरीके को नियंत्रित करने के लिए मजबूत तरीके प्रदान करते हैं। इन फ़ंक्शंस का उपयोग करके, आप वैकल्पिक डेटा को कुशलतापूर्वक प्रबंधित कर सकते हैं, यह सुनिश्चित करते हुए कि केवल प्रासंगिक मान रखे गए हैं या उन पर कार्रवाई की गई है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/almaclaine/filtering-options-in-effect-ts-a-practical-guide-96l?1 यदि कोई उल्लंघन है, तो हटाने के लिए कृपया [email protected] पर संपर्क करें यह
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3