JavaScript Array.map() Method - Transform Every Element
Learn how to use Array.map() to transform every element in an array. Includes syntax, examples with objects, and common React patterns. Free browser-based reference.
Detailed Explanation
Understanding Array.map()
Array.map() is one of the most frequently used JavaScript array methods. It creates a new array by calling a provided function on every element of the original array. The original array is never modified.
Syntax
const newArray = array.map((element, index, array) => {
// return transformed element
});
The callback receives three arguments:
- element — the current element being processed
- index — the index of the current element
- array — the original array (rarely used)
Basic Examples
// Double every number
const nums = [1, 2, 3, 4];
const doubled = nums.map(n => n * 2);
// doubled: [2, 4, 6, 8]
// Extract a property from objects
const users = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 30 }
];
const names = users.map(user => user.name);
// names: ["Alice", "Bob"]
map() in React
In React, map() is the standard way to render lists of components:
const items = ["Apple", "Banana", "Cherry"];
return (
<ul>
{items.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
);
map() vs forEach()
Both iterate over every element, but:
map()returns a new array of transformed valuesforEach()returnsundefinedand is used only for side effects
If you do not need the resulting array, use forEach() instead.
Common Pitfalls
- Forgetting to return — arrow functions without braces auto-return, but with braces you must explicitly
return - Using map for side effects — if you do not need the result array, use
forEach - Sparse arrays —
map()skips empty slots in sparse arrays
Use Case
Use map() whenever you need to transform data before displaying it -- converting API responses to UI-friendly formats, extracting specific fields from objects, or rendering React component lists from arrays of data.