flatMap विधि
flatMap विधि एक
नई सरणी लौटाती है, जो मूल सरणी के
प्रत्येक तत्व पर विधि के पैरामीटर में
निर्दिष्ट कॉलबैक
लागू करने के बाद बनाई जाती है।
पहली नज़र में flatMap विधि
map विधि के समान लगती है, लेकिन इसका मुख्य अंतर
यह है कि यह हमेशा एक एक-आयामी सरणी लौटाती है।
वाक्यविन्यास
let newArray = array.flatMap(function);
उदाहरण
आइए flatMap विधि का उपयोग करके
एक नई सरणी प्राप्त करें:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
कोड निष्पादन का परिणाम:
['a!', 'b!', 'c!']
उदाहरण
आइए संख्याओं से बनी मूल सरणी से एक नई सरणी प्राप्त करें:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
कोड निष्पादन का परिणाम:
[3, 4, 5, 6, 7]
उदाहरण
आइए पहले स्तर की नेस्टिंग वाली सरणी पर
flatMap विधि को लागू करने का प्रयास करें:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
कोड निष्पादन के बाद हम देखेंगे कि फ़ंक्शन की शर्तें उप-सरणी पर लागू हुईं, इसे एक तत्व मानते हुए। इसलिए नेस्टेड सरणियों में इस विधि को कॉल करने का कोई मतलब नहीं है:
[3, 4, 5, '4,52']
उदाहरण
यदि हम नेस्टिंग के स्तर के साथ परेशान नहीं होना चाहते हैं,
बल्कि पूरी सरणी को संयोजित करना चाहते हैं, तो हम Infinity पैरामीटर का उपयोग करते हैं:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
कोड निष्पादन का परिणाम:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
उदाहरण
आइए एक सरणी पर दो विधियाँ लागू करें:
flatMap और map, और दोनों विधियों के पैरामीटर में
एक ऐसा फ़ंक्शन निर्दिष्ट होगा जो सरणी को द्वि-आयामी बनाता है:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('map method', res1);
console.log('flatMap method', res2);
कोड निष्पादन का परिणाम:
'map method' [[3], [6], [9], [12], [15], [18]]
'flatMap method' [3, 6, 9, 12, 15, 18]
यह भी देखें
-
flatविधि,
जो उप-सरणियों से एक सरणी लौटाती है