Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

मैप जावास्क्रिप्ट:ए गाइड टू द मैप () मेथड

प्रोग्रामर अपने कोड में दोहराव को कम करना पसंद करते हैं। जितना अधिक आप अपना कोड दोहराते हैं, उतना ही कम रखरखाव योग्य होता है, और आपके प्रोग्राम धीमे चलेंगे। यही कारण है कि जावास्क्रिप्ट में डेटासेट के माध्यम से पुनरावृति करने के लिए विभिन्न तरीके हैं।

इन विधियों में से एक को map() . कहा जाता है तरीका। यह विधि किसी मौजूदा सरणी के माध्यम से लूप करती है और उस सरणी में सभी वस्तुओं पर एक विशिष्ट कार्य करती है।

इस गाइड में, हम इस बारे में बात करने जा रहे हैं कि जावास्क्रिप्ट का उपयोग कैसे करें map() समारोह। हम map() . के तीन सामान्य उदाहरणों के माध्यम से चलेंगे आरंभ करने में आपकी सहायता करने के लिए कार्य करें।

मैप फंक्शन क्या है?

जावास्क्रिप्ट map() विधि किसी सरणी में प्रत्येक आइटम पर एक विशिष्ट फ़ंक्शन को कॉल करती है। इस फ़ंक्शन का परिणाम तब अपने स्वयं के सरणी में ले जाया जाता है।

उदाहरण के लिए, मान लें कि आप किसी सरणी में प्रत्येक आइटम को दो से गुणा करना चाहते हैं। आप ऐसा फ़ंक्शन बनाकर कर सकते हैं जो प्रत्येक सरणी आइटम को दो से गुणा करता है, और उस फ़ंक्शन को map() में ले जाता है तरीका।

map() . का सिंटैक्स समारोह है:

const newArray = oldArray.map(function, thisValue);

function कॉलबैक फ़ंक्शन है जो सरणी में प्रत्येक तत्व पर चलाया जाएगा। कार्यों के बारे में अधिक जानने के लिए, आप जावास्क्रिप्ट कार्यों के लिए हमारी अंतिम मार्गदर्शिका पढ़ सकते हैं। thisValue डिफ़ॉल्ट मान है जो this . में संग्रहीत किया जाएगा फ़ंक्शन में परिवर्तनशील। डिफ़ॉल्ट रूप से, यह अपरिभाषित है।

मानचित्र विधि कॉलबैक फ़ंक्शन के परिणामों के आधार पर एक नई सरणी बनाती है।

81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।

बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।

map() विधि के कई उपयोग हैं। सरणी तत्वों की सूची पर फ़ंक्शन को कॉल करना सबसे आम है। इसका एक उदाहरण संख्याओं की सूची में प्रत्येक संख्या को गुणा करना या स्ट्रिंग्स की सूची में प्रत्येक स्ट्रिंग की लंबाई का पता लगाना होगा।

आपको रिएक्ट या Vue.js जैसे जावास्क्रिप्ट पुस्तकालयों में सूचियों को प्रस्तुत करने के लिए उपयोग किया जाने वाला फ़ंक्शन भी मिलेगा।

मानचित्र के साथ किसी फ़ंक्शन को कॉल करना

map() विधि आपको सूची में प्रत्येक आइटम पर दोहराए जाने वाले कार्य को करने की अनुमति देती है, जो इसे कई मामलों में उपयोगी बनाती है।

मान लीजिए कि आप एक कुकी स्टोर के मालिक हैं और आप प्रत्येक कुकी की कीमतों में 5% की वृद्धि करने जा रहे हैं। सभी नई कीमतों की अलग-अलग गणना करने के बजाय, आप map() . का उपयोग कर सकते हैं तरीका।

यहां वह कोड है जिसका आप उपयोग करेंगे:

const cookiePrices = [1.50, 1.75, 1.60, 2.00, 2.05, 1.45];
const newCookiePrices = cookiePrices.map(cookie => {
	var price = cookie * 1.05;
	return price.toFixed(2);
});

console.log(newCookiePrices);

हमारा कोड लौटाता है:

["1.58", "1.84", "1.68", "2.10", "2.15", "1.52"]

इस उदाहरण में, हमने प्रत्येक कुकी की कीमत में 5% की वृद्धि की है। सबसे पहले, हमने "कुकीप्राइस" वेरिएबल में कुकी कीमतों की एक सूची घोषित की। फिर, हमने map() . का उपयोग किया एक फ़ंक्शन के साथ विधि जो प्रत्येक कुकी के लिए 5% मूल्य वृद्धि की गणना करती है।

"कुकी * 1.05" ने प्रतिशत वृद्धि की गणना की, फिर हमने उस वृद्धि को निकटतम दो दशमलव स्थानों पर गोल कर दिया। अंत में, हमने console.log() . का उपयोग करके कंसोल पर नई सरणी मुद्रित की तरीका।

हम अपने कोड को और अधिक पठनीय बनाने के लिए अपने फ़ंक्शन को अपने स्वयं के फ़ंक्शन में स्थानांतरित कर सकते हैं:

function calculateIncrease(cookie) {
	var price = cookie * 1.05;
	return price.toFixed(2);
}

const cookiePrices = [1.50, 1.75, 1.60, 2.00, 2.05, 1.45];
const newCookiePrices = cookiePrices.map(calculateIncrease);

console.log(newCookiePrices);

हमारा कोड पहले के समान मान लौटाता है, लेकिन अधिक पठनीय है:

["1.58", "1.84", "1.68", "2.10", "2.15", "1.52"]

एक सरणी में आइटम बदलें

map() सरणी में आइटम को बदलने के लिए अक्सर विधि का उपयोग किया जाता है। मान लीजिए कि हमारी कुकी की दुकान अपने ग्राहकों के लिए एक वफादारी कार्यक्रम बना रही है। आपके द्वारा खरीदी गई प्रत्येक कुकी से आपको 10 अंक मिलते हैं, और यदि आप 100 अंक अर्जित करते हैं, तो आप एक निःशुल्क कुकी अर्जित करेंगे।

निम्नलिखित कार्यक्रम हमें इस कार्य को पूरा करने की अनुमति देगा:

var customers = [
	{ name: "Hannah Geoffrey", cookiesPurchased: 2 },
	{ name: "Peter Clarkson", cookiesPurchased: 3 },
	{ name: "Steven Hanson", cookiesPurchased: 7 }
]

function calculateLoyaltyPoints(customer) {
	var newCustomer = {
		name: customer.name,
		cookiesPurchased: customer.cookiesPurchased,
		points: customer.cookiesPurchased * 10
	}

	return newCustomer;
}

var customersWithPoints = customers.map(calculateLoyaltyPoints);

console.log(customersWithPoints);

हमारा कोड लौटाता है:

[{ cookiesPurchased: 2, name: "Hannah Geoffrey", points: 20 }, { cookiesPurchased: 3, name: "Peter Clarkson", points: 30 }, { cookiesPurchased: 7, name: "Steven Hanson", points: 70 }]

इस उदाहरण में, हमने गणना की है कि प्रत्येक ग्राहक को उनके द्वारा खरीदी गई कुकीज़ की संख्या के आधार पर कुल कितने अंक दिए जाने चाहिए।

सबसे पहले, हमने "ग्राहक" नामक वस्तुओं की एक सरणी घोषित की। यह सूची हमारे ग्राहकों के नाम और कुंजी:वैल्यू पेयर का उपयोग करके उनके द्वारा खरीदी गई कुकी की संख्या को संग्रहीत करती है।

फिर, हमने calculateLoyaltyPoints() . नामक एक फ़ंक्शन घोषित किया . यह फ़ंक्शन प्रत्येक ग्राहक आइटम में "अंक" नामक एक नया आइटम जोड़ता है, जिसकी गणना प्रत्येक ग्राहक द्वारा खरीदी गई कुकीज़ की संख्या को 10 से गुणा करके की जाती है।

हम map() . का उपयोग करते हैं हमारे ग्राहकों की सूची के माध्यम से पुनरावृति करने की विधि और हमारे calculateLoyaltyPoints() . को लागू करें समारोह। अंत में, हम ग्राहकों की संशोधित सूची का प्रिंट आउट लेते हैं। यह सूची अब हमारे "अंक" मूल्य को दर्शाती है जिसे हमने प्रत्येक ग्राहक की प्रविष्टि में जोड़ा है।

लाइब्रेरी का उपयोग करके सूची प्रस्तुत करना

map() विधि आमतौर पर जावास्क्रिप्ट पुस्तकालयों जैसे रिएक्ट में उपयोग की जाती है। इस पद्धति का उद्देश्य वस्तुओं को सूची में प्रस्तुत करना है। आइए map() . के एक उदाहरण के माध्यम से चलते हैं प्रतिक्रिया में।

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

import React from "react";
import ReactDOM from "react-dom";

var cookies = ["Raspberry Chocolate Chip", "White Chocolate Chip", "Oat", "Milk Chocolate Chip"];

const CookieList = () => (
	<div>
		<ul>{cookies.map((cookie, i) => 
			<li key={i}>{cookie}</li>
		       )}
		</ul>
	</div>
);

const root = document.getElementById("root");
ReactDOM.render(<CookieList />, root);

यह कोड रिएक्ट में एक घटक बनाता है जो एक सूची प्रस्तुत करता है। प्रत्येक सूची आइटम

  • टैग के भीतर समाहित होता है जिसे map() . का उपयोग करके प्रस्तुत किया जाता है . map() सूची में प्रत्येक आइटम के लिए एक अलग
  • टैग बनाता है, और "i" चर प्रत्येक सूची आइटम को एक अद्वितीय कुंजी प्रदान करता है।

    मानचित्र बनाम पुनरावृत्त विधियाँ

    मानचित्र जावास्क्रिप्ट में एक पुनरावृत्त विधि का एक उदाहरण है। ये विधियाँ आपको सूची में सभी आइटमों को लूप करने और कुछ क्रिया करने की अनुमति देती हैं।

    जब आप map() . का उपयोग करने का निर्णय ले रहे हों फ़ंक्शन, पहले यह पूछना अच्छा है कि क्या कोई अन्य पुनरावर्तक विधि बेहतर होगी। यह सुनिश्चित करेगा कि आप नौकरी के लिए सही उपकरण चुनें।

    जावास्क्रिप्ट में मौजूद अन्य पुनरावर्तक विधियां यहां दी गई हैं:

    • कम करें() :कम करने की विधि आपको एक सरणी को एक मान में कम करने की अनुमति देती है। यह तरीका सबसे अच्छा है यदि आप कुछ करना चाहते हैं जैसे किसी सरणी में सभी आइटम जोड़ना।
    • फ़िल्टर () :फ़िल्टर आपको उन वस्तुओं को सूची से हटाने की अनुमति देता है जो विशेष मानदंडों को पूरा नहीं करते हैं।
    • प्रत्येक के लिए() :forEach() सूची में प्रत्येक आइटम पर एक फ़ंक्शन चलाता है। forEach() लूप के समान है क्योंकि यह आपको एक सरणी पर लूप करने और प्रत्येक आइटम पर एक कार्य करने की अनुमति देता है।

    आप स्वयं सोच रहे होंगे, “मानचित्र वास्तव में forEach() . के समान लगता है तरीका। क्या यह वही है?" यह एक अच्छा सवाल है। इन दोनों विधियों में सूक्ष्म अंतर है।

    map() फ़ंक्शन एक सूची पर पुनरावृति करता है, सूची में प्रत्येक आइटम को बदलता है और एक नई सूची देता है। forEach() दूसरी ओर, फ़ंक्शन एक सूची पर पुनरावृति करता है और, एक साइड इफेक्ट के रूप में, सूची में कुछ ऑपरेशन लागू करता है।

    map() फ़ंक्शन का सबसे अच्छा उपयोग किया जाता है यदि आपको किसी सूची में प्रत्येक आइटम पर फ़ंक्शन को कॉल करने की आवश्यकता होती है, एक सूची घटक को रिएक्ट जैसे ढांचे में घोषित करें, या किसी सूची की सामग्री को बदलें।



    निष्कर्ष

    map() दोहराए जाने वाले कार्यों को कई बार करने के लिए विधि उपयोगी है। यह सूची जैसे रिएक्ट में घटकों को घोषित करने के लिए भी उपयोगी है।

    इस ट्यूटोरियल में, हमने map() . के तीन मुख्य उपयोगों का विश्लेषण किया है तरीका। अब आप JavaScript का उपयोग शुरू करने के लिए तैयार हैं map() एक विशेषज्ञ डेवलपर की तरह विधि!


    1. जावास्क्रिप्ट में उच्च क्रम के कार्य:एक गाइड

      एक डेवलपर के रूप में, आपने संभवतः नियमित जावास्क्रिप्ट फ़ंक्शन का उपयोग किया होगा। पहले ऑर्डर फ़ंक्शन कहा जाता है, वे किसी फ़ंक्शन को पैरामीटर के रूप में नहीं लेते हैं या फ़ंक्शन वापस नहीं करते हैं। फ़ंक्शन हैलो (नाम) {वापसी हैलो, + + नाम} कंसोल.लॉग (हैलो (कैरियर कर्म)); // हैलो, करियर कर्म यह ल

    1. जावास्क्रिप्ट में सेटटाइमआउट () विधि क्या है?

      सेटटाइमआउट() यह कई समय की घटनाओं में से एक है। विंडो ऑब्जेक्ट निर्दिष्ट समय अंतराल पर कोड के निष्पादन की अनुमति देता है। इस ऑब्जेक्ट ने सेटटाइमआउट() provided प्रदान किया है एक निश्चित समय के बाद किसी फ़ंक्शन को निष्पादित करने के लिए। इसमें दो पैरामीटर . लगते हैं तर्क के रूप में। एक है फ़ंक्शन और

    1. जावास्क्रिप्ट में जनरेटर.थ्रो () विधि।

      जेनरेटर.थ्रो () मेथड का उपयोग यील्ड में एरर पास करने के लिए किया जाता है। एक त्रुटि फेंककर और गुणों और मूल्य के साथ लौटाने वाली वस्तु को फेंकने के बाद जनरेटर निष्पादन को फिर से शुरू करता है। जावास्क्रिप्ट में जनरेटर.थ्रो () के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="