The map() method is an ES5 feature that creates a new array by applying a function to each element of the original array. It skips empty elements and does not modify the original array.
const a = [1, 2, 3, 4];
// Use map to create a new array with elements doubled
const b = a.map(x => x * 2);
console.log(b);
Syntax
arr.map((element, index, array) => { /* … */ })
Parameters
- element: It is a required parameter and holds the current element's value.
- index: It is an optional parameter and it holds the index of the current element.
- arr: It is an optional parameter and it holds the array.
Return Value
It returns a new array and the arrays' elements result from the callback function.
Example 1: Here, we are using the map() method to create a new array containing the square roots of each number in the original array.
const a = [1, 4, 9, 16, 25];
const sr = a.map(num => Math.sqrt(num));
console.log(sr);
Example 2: This example uses the array map() method and returns the square of the array element.
let a = [2, 5, 6, 3, 8, 9];
let res = a.map(function (val, index) {
return { key: index, value: val * val };
})
console.log(res)
Example 3: This example concatenates the character 'A' to each character of the string.
let s = "Geeks";
let res = Array.prototype.map.call(s, function (item) {
return item + 'A';
})
console.log(res)
Passing a method as parameter to map()
The parseInt() function converts strings to integers. When used with map(), it converts each element of an array of strings to integers. This explains that the map function can take another function as a callback function that has one parameter and another optional parameter.
Note: We are converting string to integers using parseInt().
Example: Here, we are using parseInt() with map() function.
const a = ['10', '20', '30'];
const b = a.map(s => parseInt(s));
console.log(b);