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.
👉 Download eBook
Top comments (0)