forEach() vs map() in JavaScript

I am Dev Raj Sharma, a dedicated MERN Stack Developer from India. Currently immersed in the world of MERN stack development, I am also pursuing my MCA at PTU University. Passionate about coding and staying updated with the latest technologies, I am on a continuous journey of learning and growth in the field of web development.
Map() function
In JavaScript, the map function is a higher-order function that is used to create a new array by applying a provided function to each element of an existing array. The original array remains unchanged. The map function takes a callback function as its argument, and this callback function is applied to each element of the array.
Here's a basic syntax for the map() function:
let newArray = originalArray.map(callbackFunction);
Square of each elelment of an array

You can also use arrow functions for a more concise syntax:

forEach() method
In JavaScript, the forEach method is used to iterate over elements in an array. It provides a concise way to loop through each element of an array and perform a specified operation for each element.
Here's a basic syntax of the forEach() method:
array.forEach(function(currentValue, index, array){ // Your code here});
Here's an example:

What happen if we try to modify the array using forEach()

The output Will be undefined.
Correct approach of doing it.

When to use which
Your use case will determine whether to use map() or forEach(). The map() provides a new array containing the transformed data, thus you should use it if you intend to modify, alternate, or use the data.But instead of using map(), use forEach() if you won’t require the resulting array.