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