Я недавно столкнулся со странным (для меня) поведением.
let test = [
{ id: 1, name: 'test1' },
{ id: 2, name: 'test2' },
{ id: 3, name: 'test3' }
]
let test2 = []
test.forEach((elem, index) => {
console.warn(elem, index);
test2.push(elem.name)
elem.arr = test2
})
console.warn(test);
, и я хочу, чтобы ожидаемый результат был таким
[ { id: 1, name: 'test1', arr: [ 'test1'] },
{ id: 2, name: 'test2', arr: [ 'test1', 'test2'] },
{ id: 3, name: 'test3', arr: [ 'test1', 'test2', 'test3' ] }]
, но я получил это
[ { id: 1, name: 'test1', arr: [ 'test1', 'test2', 'test3'] },
{ id: 2, name: 'test2', arr: [ 'test1', 'test2', 'test3'] },
{ id: 3, name: 'test3', arr: [ 'test1', 'test2', 'test3'] }]
Может кто-нибудь объяснить мне, почему это происходит (возможно, что-то о ссылках?) И решение?