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

कोड का दिन/दिन: क्रेडिट कार्ड सत्यापनकर्ता चुनौती

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

Day /  Days of Code: Credit Card Validator Challenge

रविवार, 15 सितंबर, 2024

यह सप्ताह पूरी तरह से कोड चुनौतियों से भरा रहा, जो शानदार रहा! एक पेचीदा चुनौती लुहान एल्गोरिदम का उपयोग करके क्रेडिट कार्ड सत्यापनकर्ता को लागू करना था, जो एकल-अंकीय क्रेडिट कार्ड त्रुटियों और 90 > 09 जैसे आसन्न ट्रांसपोज़िशन को रोकता है। लुहान एल्गोरिदम को कोडिंग काफी प्राप्य है; आइए मेरे कार्यान्वयन पर चलते हैं।

सबसे पहले, आइए यह समझने में थोड़ा समय लें कि कार्यात्मक प्रोग्रामिंग (एफपी) क्या है। एक अनिवार्य कार्य के बजाय जहां आप परीक्षण के लिए क्रेडिट कार्ड नंबरों को कतारबद्ध करते हैं, क्रेडिट कार्ड नंबर सत्यापन एक ऐसी विधि हो सकती है जिसे आप सीधे क्रेडिट कार्ड नंबर चर पर लागू करते हैं। यह मॉड्यूलर दृष्टिकोण आपके कोड के मूल्य को बढ़ाता है क्योंकि इसे दोबारा लिखे बिना अधिक तरीकों से उपयोग किया जा सकता है। एफपी में एक दुष्प्रभाव यह है कि डेटा स्टार बन जाता है-फ़ंक्शन नहीं, जो बहुत सुव्यवस्थित दिखता है।

शुरू करने के लिए, हम एफपी प्रतिमान को ध्यान में रखते हुए एक तीर फ़ंक्शन का उपयोग करेंगे। यह एक-पंक्ति कार्यों में अधिक महत्वपूर्ण है, लेकिन यह अभी भी व्यावहारिक है।

  • अंतिम अंक को अलग रखें: लुहान एल्गोरिदम में पहला कदम अंतिम अंक को एक वेरिएबल में अलग करना है जिसे हम अंतिम अंक नाम देंगे। यह सरणी लंबाई - 1 का उपयोग करके सरणी तत्वों तक पहुंचने के लिए एक मानक विधि का पालन करता है क्योंकि सरणी 0 पर तत्व क्रमांकन शुरू करती है। जावास्क्रिप्ट अच्छी तरह से सरणी के लिए मूल रूप से यह सुविधा प्रदान करता है।

  • सरणी को उल्टा करें: लुहान एल्गोरिदम दाएं से बाएं तक क्रेडिट कार्ड अंकों पर काम करता है। चीजों को सरल रखने के लिए, हम सरणी को उलट देंगे। जावास्क्रिप्ट इस ऑपरेशन को सरल बनाने के लिए दो तरीके प्रदान करता है: पहले से दूसरे-अंतिम तत्वों का चयन करने के लिए स्लाइस, और सरणी में तत्वों के क्रम को उलटने के लिए रिवर्स। हम इसे allExceptLastReversed नामक एक नए ऐरे को असाइन करेंगे।

  • हर दूसरे तत्व को दोगुना करें: अगले चरण में जावास्क्रिप्ट के पुनरावृत्त तरीकों की तुलना में सरणी तत्व पुनरावृत्ति के बेहतर नियंत्रण की आवश्यकता होती है, इसलिए हम लूप के लिए पारंपरिक का उपयोग करेंगे। इस चरण में प्रत्येक अन्य सरणी तत्व को दोगुना करना शामिल है, और यदि मान 9 से अधिक है, तो 9 घटाना शामिल है।

  • तत्वों का योग करें और सत्यापित करें: अब हम लगभग पूरा कर चुके हैं। हम सभी सरणी तत्वों का योग करना चाहते हैं और सत्यापित करना चाहते हैं कि वे 10 से विभाज्य हैं। जावास्क्रिप्ट में कम नामक एक पुनरावृत्त विधि है जो किसी सरणी में प्रत्येक तत्व पर एक फ़ंक्शन, आमतौर पर योग या उत्पाद लागू करती है और परिणाम जमा करती है। यहां हम उलटे, कटे हुए सरणी तत्वों का योग करेंगे, अंतिम अंक जोड़ेंगे, और जांचेंगे कि मॉड्यूल 10 का योग 0 है या नहीं।

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

यह चुनौती कार्यात्मक और अनिवार्य प्रोग्रामिंग प्रतिमानों दोनों में गहराई से उतरने का एक शानदार तरीका था। इसने मॉड्यूलर, पुन: प्रयोज्य कोड लिखने के महत्व पर प्रकाश डाला। जैसा कि मैंने अपनी 100 दिनों की कोड यात्रा जारी रखी है, मैं और अधिक चुनौतियों से निपटने और विभिन्न प्रोग्रामिंग अवधारणाओं के बारे में अपनी समझ का विस्तार करने के लिए उत्साहित हूं। प्रत्येक दिन सीखने और बढ़ने के नए अवसर लाता है, और मैं यह देखने के लिए इंतजार नहीं कर सकता कि यह यात्रा मुझे आगे कहाँ ले जाती है।

अधिक अपडेट और खुश कोडिंग के लिए बने रहें! ?

यहां पूरा कोड है:

const validateCred = (cardNumber) => {
  const lastDigit = cardNumber[cardNumber.length - 1];
  let allExceptLastReversed = cardNumber.slice(0, -1).reverse();
  for (let i = 0; i  9) {
      allExceptLastReversed[i] -= 9; 
    }
  }
  const sum = allExceptLastReversed.reduce((acc, curr) => acc   curr, 0)   lastDigit; 
  // sum all digits
  return (sum % 10 === 0);
};

क्रॉस पोस्ट किया गया: देव https://dev.to/jacobsernx और लिंक्डइन https://www.linkedin.com/in/jacobsternx

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/jacobsernx/day-77-100-days-of-code-credit-card-validator-challenge-93m?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163 से संपर्क करें इसे हटाने के लिए .com
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3