I have a question about js loops and how they really work. I'm looping trough an array of objects that looks like this:
const array = [{value: 0}, {value: 0}, {value: 0}, {value: 0}];
The loop just updates the value of every element:
array.forEach(el => {
el.value = 1;
console.log(array)
})
The thing that I don't understand is why the output looks like this:
[{value: 1}, {value: 1}, {value: 1}, {value: 1}]
[{value: 1}, {value: 1}, {value: 1}, {value: 1}]
[{value: 1}, {value: 1}, {value: 1}, {value: 1}]
[{value: 1}, {value: 1}, {value: 1}, {value: 1}]
And not like this:
[{value: 1}, {value: 0}, {value: 0}, {value: 0}]
[{value: 1}, {value: 1}, {value: 0}, {value: 0}]
[{value: 1}, {value: 1}, {value: 1}, {value: 0}]
[{value: 1}, {value: 1}, {value: 1}, {value: 1}]
What am I missing?