This content originally appeared on DEV Community and was authored by Harish Kumar
The array.map
function is a method available in JavaScript (and in some other languages under different names or syntax) that is used to create a new array populated with the results of calling a provided function on every element in the calling array. It’s a powerful tool for transforming arrays.
Download eBook – JavaScript: from ES2015 to ES2023
.
Here’s a detailed look at how the array.map
function works in JavaScript:
Syntax
array.map(callback(currentValue, index, array), thisArg)
-
callback: A function that is called for every element of the array. Each time the callback executes, the returned value is added to the new array.
- currentValue: The current element being processed in the array.
- index: The index of the current element being processed in the array.
-
array: The array
map
was called upon.
-
thisArg (optional): Value to use as
this
when executing the callback.
Example Usage
- Basic Example
const numbers = [1, 4, 9, 16];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 8, 18, 32]
- Using Index
const numbers = [1, 4, 9, 16];
const withIndex = numbers.map((num, index) => `${index}: ${num}`);
console.log(withIndex); // ["0: 1", "1: 4", "2: 9", "3: 16"]
- Converting Data Types
const stringNumbers = ["1", "2", "3"];
const parsedNumbers = stringNumbers.map(str => parseInt(str));
console.log(parsedNumbers); // [1, 2, 3]
Key Points
-
Immutability:
map
does not change the original array. It creates a new array with the transformed elements. -
Function Requirement:
map
requires a callback function. If you just want to copy an array, you should useslice
or the spread operator. - Consistency: The new array will always have the same length as the original array.
Practical Use Cases
- Transforming Data
Converting an array of objects into an array of specific property values:
const users = [
{ id: 1, name: "John" },
{ id: 2, name: "Jane" },
{ id: 3, name: "Doe" }
];
const userNames = users.map(user => user.name);
console.log(userNames); // ["John", "Jane", "Doe"]
- Extracting Data
Extracting URLs from an array of objects:
const links = [
{ label: "Google", url: "http://google.com" },
{ label: "Facebook", url: "http://facebook.com" },
{ label: "Twitter", url: "http://twitter.com" }
];
const urls = links.map(link => link.url);
console.log(urls); // ["http://google.com", "http://facebook.com", "http://twitter.com"]
- Combining with Other Methods
Combining map
with filter
to first filter an array and then transform it:
const numbers = [1, 2, 3, 4, 5, 6];
const evenSquares = numbers.filter(num => num % 2 === 0).map(num => num * num);
console.log(evenSquares); // [4, 16, 36]
Conclusion
The array.map
function is a fundamental method in JavaScript for transforming arrays. It allows for the application of a function to each element of an array, resulting in a new array with the transformed elements. Understanding and using map
effectively can lead to cleaner, more readable code, especially when dealing with data transformation tasks.
This content originally appeared on DEV Community and was authored by Harish Kumar