Мне известно о глубоком копировании объекта и массива следующими способами:
С объектами: Way1: JSON way
const obj1 = {
id: 5,
names: {
first: 'tinu',
last: {
other: 'k'
}
}
};
//Deep copy way 1: JSON way
const obj2 = JSON.parse(JSON.stringify(obj1));
// Modify the nested 2nd object
obj2.names.last.other = 'f';
console.log(obj1); // Prints { id: 5, names: { first: 'tinu', last: { other: 'k' } } }
console.log(obj2); // Prints { id: 5, names: { first: 'tinu', last: { other: 'f' } } }
С объектами: Way2: Синтаксический путь распространения
const obj1 = {
id: 5,
names: {
first: 'tinu',
last: {
other: 'k'
}
}
};
//Deep copy way 2: Spread syntax way
const obj2 = {...obj1, names: {...obj1.names, last: {...obj1.names.last}}};
// Modify the nested 2nd object
obj2.names.last.other = 'f';
console.log(obj1); // Prints { id: 5, names: { first: 'tinu', last: { other: 'k' } } }
console.log(obj2); // Prints { id: 5, names: { first: 'tinu', last: { other: 'f' } } }
С массивами: Way1: JSON way
const array1 = [['a'], 'b', 'c'];
// Deep copy way 1: JSON way
const array2 = JSON.parse(JSON.stringify(array1));
//Modify the nested 2nd array
array2[0].push('pushed');
console.log(array1);
console.log(array2);
Что такое синтаксический способ распространения с массивами для глубокого копирования?