The primary differences between forEach and map in JavaScript (often used with arrays) lie in their return values and purposes:
forEach
- Purpose: Iterates over each element in an array, allowing you to perform an action on each element.
-
Return value:
undefined. -
Use cases:
- Modifying elements in-place (be cautious of potential side effects).
- Performing side effects like logging or DOM manipulation for each element.
Example:
const numbers = [1, 2, 3];
numbers.forEach(number => console.log(number * 2)); // Output: 2, 4, 6 (no new array)
map
- Purpose: Creates a new array with the results of applying a callback function to each element in the original array.
- Return value: A new array containing the transformed elements.
-
Use cases:
- Transforming elements (e.g., doubling values, converting to uppercase).
- Creating a new array based on a calculation or manipulation of the original elements.
Example:
const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers); // Output: [2, 4, 6] (new array)
Key Differences:
| Feature | forEach |
map |
|---|---|---|
| Return Value |
undefined (doesn't create a new array) |
A new array containing transformed elements |
| Purpose | Iterates and performs actions on existing elements | Transforms elements and creates a new array |
| Side Effects | Can be used for in-place modifications (potentially risky) | Usually doesn't have side effects (creates a new array) |
| Common Use Cases | Modifying elements, side effects (logging, DOM) | Transforming elements, creating a new array based on logic |
Choosing the Right Method:
- Use
forEachif you want to iterate through elements and perform side effects without creating a new array. - Use
mapif you want to create a new array with transformed elements based on a callback function.
Top comments (0)