Reputation: 63
I wrote the following code:
let text = 'abbade';
let firstArray = text.split('');
console.log(firstArray [0], '1st answer');
let secondArray = firstArray.reverse();
console.log(firstArray [0], '2nd answer');
I am expecting the value of the 1st answer and the 2nd answer to be the same. Instead, the first answer is 'a' while the 2nd answer is 'e'. Can any one enlighten me why this is so?
Why does declaring let secondArray = firstArray.reverse()
seem to affect firstArray
?
Upvotes: 0
Views: 48
Reputation: 22855
You can use Array#toReversed()
to avoid mutating the original array, since Array#reverse()
mutates its array:
let text = 'abbade';
let firstArray = text.split('');
console.log(firstArray [0], '1st answer');
let secondArray = firstArray.toReversed();
console.log(firstArray [0], '2nd answer');
Upvotes: 0
Reputation: 305
The reverse method is a destructive method, meaning it changes the original array.
when you assigned secondArray = firstArray.reverse(), it made made permanent changes to the first array itself
Upvotes: 2