DEV Community

Discussion on: JavaScript array methods: Mutator VS Non-mutator and the returning value

Collapse
 
ibrahima92 profile image
Ibrahima Ndaw

ForEach itself does not mutate the array. But the function passed as parameter can mutate the array. And mostly forEach is used with a function parameter therefore it's more a mutator than a non-mutator. For the others, map and filter they both return a new array and reduce return a single value. But overall they does not mutate the original array.

Collapse
 
martintarjanyi profile image
Martin Tarjányi

You pass a function to map and filter as well, so they are also able to change the state of the object. Obviously, it's a bad practice to do so but still possible.

Thread Thread
 
fetishlace profile image
fetishlace

You have to reassign e.g. arr = arr.map(x=>x**x), since arr.map(x=>x*x) won't change arr itself, it is new array, same as .filter.

Collapse
 
kabirsumn profile image
kabirsumn

can you give me an example where forEach() changes the original Array completely?