जावास्क्रिप्ट का Array.prototype.map() फंक्शन कॉल किए गए फंक्शन के परिणामों के साथ एक नया एरे बनाने के लिए उपयोग किया जाता है।
सिंटैक्स इस प्रकार है:
arr.map(function callback(currentValue[, index[, array]]))
उदाहरण 1 - Math.abs
<!DOCTYPE html>
<html>
<body>
<h2>डेमो हेडिंग</h2>
<p>abs() परिणाम दिखाने के लिए क्लिक करें...</p>
<button onclick="display()">परिणाम</button>
<p id="test"></p>
<script>
function display() {
var arr = [1, -2, 3, 4, 5, -6, 7, 8, 9, 10];
var res = arr.map(Math.abs);
document.write(res);
}
</script>
</body>
</html>
आउटपुट
1,2,3,4,5,6,7,8,9,10
उदाहरण 2 - Math.round
<!DOCTYPE html>
<html>
<body>
<h2>डेमो हेडिंग</h2>
<p>संख्याओं को राउंड करने के लिए क्लिक करें...</p>
<button onclick="display()">परिणाम</button>
<p id="test"></p>
<script>
var arr = [11.4, 12.9, 25.6, 88.9];
document.getElementById("test").innerHTML = arr;
function display() {
var res = arr.map(Math.round);
document.getElementById("test").innerHTML = res;
}
</script>
</body>
</html>
आउटपुट
क्लिक से पहले: 11.4,12.9,25.6,88.9
क्लिक के बाद: 11,13,26,89
व्यावहारिक उपयोग
// ऑब्जेक्ट्स ट्रांसफॉर्म करना
const users = [
{ firstName: 'John', lastName: 'Doe' },
{ firstName: 'Jane', lastName: 'Smith' }
];
const fullNames = users.map(user => `${user.firstName} ${user.lastName}`);
// ['John Doe', 'Jane Smith']
// इंडेक्स के साथ
const indexed = arr.map((value, index) => `${index}: ${value}`);
// चेनिंग
const result = [1, 2, 3, 4, 5]
.filter(x => x % 2 === 0)
.map(x => x * 10); // [20, 40]
// मैप के साथ ऑब्जेक्ट बनाना
const obj = Object.fromEntries(
['a', 'b', 'c'].map((key, i) => [key, i])
); // { a: 0, b: 1, c: 2 }
महत्वपूर्ण नोट्स
- नया एरे बनाता है: मूल एरे अपरिवर्तित रहता है
- लंबाई समान: आउटपुट एरे की लंबाई इनपुट के बराबर होती है
- कोई म्यूटेशन नहीं: फंक्शनल प्रोग्रामिंग पैटर्न
- होल्स स्किप करता है: स्पार्स एरे में खाली स्लॉट्स