Map and Foreach : Angular

Amit Dhiman
2 min readSep 15, 2023

--

In Angular, both map and forEach are used to iterate over elements in an array or a collection, but they serve different purposes and have different behaviors:

1. map Function:

  • map is a higher-order function available in JavaScript and is also used in Angular.
  • It iterates over each element of the array and transforms each element by applying a provided function to it.
  • It returns a new array containing the results of applying the provided function to each element.
  • The original array remains unchanged.

Example of map in JavaScript:

const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map((num) => num * 2);

// doubledNumbers will be [2, 4, 6, 8, 10]

In Angular, you can use map in conjunction with RxJS observables to transform data emitted by an observable sequence.

2. forEach Function:

  • forEach is also a higher-order function available in JavaScript and Angular.
  • It iterates over each element of the array and applies a provided function to each element.
  • Unlike map, it doesn't create a new array or modify the existing elements; it's primarily used for performing actions or side effects for each element in the array.
  • It returns undefined.

Example of forEach in JavaScript:

const numbers = [1, 2, 3, 4, 5];
numbers.forEach((num) => console.log(num));

// Output:
// 1
// 2
// 3
// 4
// 5

In Angular, you can use forEach when you want to perform an action or side effect for each item emitted by an observable without changing the data itself.

Key Differences:

Transformation vs. Side Effects:

  • map is used for transforming data. It returns a new array or observable with transformed elements.
  • forEach is used for performing side effects (e.g., logging, updating UI, etc.) for each element without modifying the data.

Return Value:

  • map returns a new array or observable containing transformed elements.
  • forEach returns undefined.

Modification of Original Data:

  • map does not modify the original data; it creates a new array or observable.
  • forEach also does not modify the original data; it simply applies a function to each element.

In summary, use map when you want to transform data and create a new array or observable, and use forEach when you want to perform actions or side effects for each element in the array or observable without changing the data itself.

--

--

Amit Dhiman

Sr. Software Developer, Frontend developer with 9+ years of experience. Specializing in Kotlin, Java, Angular, Javascript, Typescript, Html and CSS.