Копирование массива объектов в другой массив в javascript с помощью slice (0) и concat() не работает.
Я попробовал следующее проверить, получаю ли я ожидаемое поведение глубокой копии, используя это. Но исходный массив также изменяется после внесения изменений в скопированный массив.
var tags = [];
for(var i=0; i<3; i++) {
tags.push({
sortOrder: i,
type: 'miss'
})
}
for(var tag in tags) {
if(tags[tag].sortOrder == 1) {
tags[tag].type = 'done'
}
}
console.dir(tags)
var copy = tags.slice(0)
console.dir(copy)
copy[0].type = 'test'
console.dir(tags)
var another = tags.concat()
another[0].type = 'miss'
console.dir(tags)
Как я могу сделать глубокую копию массива в другой, так что исходный массив не будет изменен, если я сделаю изменение в массиве копий.