Skip to content
loading...

re: JavaScript array methods: Mutator VS Non-mutator and the returning value VIEW POST

TOP OF THREAD FULL DISCUSSION
re: I think forEach is incorrectly categorized as a mutator function, since it does not modify the array itself, it only might modify the state of the ...
 

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.

 

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.

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.

code of conduct - report abuse