मैप विधि
map विधि सरणी के प्रत्येक तत्व के लिए
दिए गए फ़ंक्शन को लागू करने की अनुमति देती है।
यह विधि मूल सरणी को नहीं बदलती है, बल्कि
संशोधित सरणी लौटाती है।
यह विधि एक फ़ंक्शन को पैरामीटर के रूप में प्राप्त करती है, जो
सरणी के प्रत्येक तत्व के लिए निष्पादित होगी।
यह फ़ंक्शन return के माध्यम से जो कुछ भी लौटाएगा
वह सरणी तत्व का नया मान बन जाएगा (उदाहरण देखें)।
फ़ंक्शन में 3 पैरामीटर पास किए जा सकते हैं।
यदि ये पैरामीटर मौजूद हैं (वे अनिवार्य नहीं हैं),
तो पहले में स्वचालित रूप से सरणी का तत्व
चला जाएगा, दूसरे में उसकी सरणी में संख्या (इंडेक्स) चली जाएगी,
और तीसरे में - स्वयं सरणी चली जाएगी।
वाक्य - विन्यास
let नई_सरणी = सरणी.map(function(तत्व, सूचकांक, सरणी) {
कोड
return परिवर्तित_तत्व;
});
उदाहरण
आइए एक ऐसी सरणी बनाते हैं, जिसका प्रत्येक तत्व प्रारंभिक सरणी के संबंधित तत्व से दोगुना बड़ा है:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
कोड निष्पादन का परिणाम:
[2, 4, 6, 8, 10]
उदाहरण
आइए एक ऐसी सरणी बनाते हैं, जिसका प्रत्येक तत्व इस प्रकार प्राप्त होता है - तत्व का मान उसके क्रमिक संख्या (इंडेक्स) से गुणा किया जाता है:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
कोड निष्पादन का परिणाम:
[0, 2, 6, 12, 20]
उदाहरण
आवश्यकता पड़ने पर तीसरे पैरामीटर में स्वयं सरणी पास की जा सकती है:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
// यहाँ सरणी arr उपलब्ध रहेगी
});
उदाहरण
map विधि का उपयोग बहुआयामी सरणियों को
पार करने के लिए भी किया जा सकता है। उदाहरण के लिए,
मान लीजिए कि यहाँ ऐसी सरणी दी गई है:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
आइए इस सरणी को
map के माध्यम से पार करें और इसके तत्वों को कंसोल में प्रदर्शित करें:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
परिणामस्वरूप console.log पहले [1,
2, 3], फिर [4, 5, 6], फिर
[7, 8, 9] प्रदर्शित करेगा।
जैसा कि आप देख रहे हैं, चर elem में
उप-सरणियाँ (subarrays) आ जाती हैं। आइए अब प्रत्येक
उप-सरणी पर map विधि लागू करें और
उसके प्रत्येक तत्व का वर्ग करें:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
return elem.map(function(num) {
return num * num;
});
});
console.log(result);