Which JavaScript Array functions are mutating?
I am writing an Array-derived class in JavaScript and need to know which functions to overload so that I can be aware of changes made to the array.
I know Array.push()
and Array.splice()
are mutating. Is there a definitive list of any others?
Solution 1:
You can find the list on MDN as Mutator methods (along with Accessor and Iteration methods):
copyWithin
fill
pop
push
reverse
shift
sort
splice
unshift
Solution 2:
You can also use .concat()
, before using your mutation method, to ensure you are not mutating your arrays, eg
const dontMutateMe = [4,5,1,2,3];
const sortArray = dontMutateMe.concat().sort(...)
Solution 3:
I found this website called Doesitmutate
Have the list of all functions - and tells whether it mutates or not.