Currently I am having a const current = [0,1] and push it to an array array1.push(current). Then I reassign the current to a let previous = current. If I update the previous[1] = 7, why the array1 value also updated?
Asked
Active
Viewed 93 times
-2
qmkiwi
- 135
- 1
- 5
-
2Why would anything else happen? You're not making a copy, you only have one array. – jonrsharpe Aug 13 '21 at 15:23
-
`const` means that you can't reassign a different value to that variable. It doesn't mean that the object that variable is referring to becomes immutable. – Ivar Aug 13 '21 at 15:28
2 Answers
0
previous and current are referencing same array here [0,1]. so any update you make on current or previous will reflect in the current/previous reference you pushed into the array1.
if you don’t want previous[1]=7 to change current array . then I suggest you do let previous = Array.from(current). that way current won’t change even when you run previous[1]=7 since current and previous are pointed to two different arrays( or memory spaces)
these are the keywords I look at when i get confused about this deep copy, shallow copy.
Bharat Varma
- 154
- 1
- 6
-2
Just figured by myself: the = just copy the reference of original array instead of the original value.
qmkiwi
- 135
- 1
- 5