Клонирование объектов и массивов в JavaScript

30.04.19

Для клонирования объектов в JS нет специально предусмотренного метода. Скопировать объект можно разными способами. Так как объекты передаются по ссылке, то мы не можем провести клонирование простым присвоением значения переменной

Объекты

С помощью Spread

let originalObject = {a: 1};
let clone = {...originalObject};

С помощью Object.assign()

let originalObject = {a: 1};
let clone = Object.assign({}, originalObject);

С помощью цикла

let clone = {};
 
for (let key in originalObject) {
  clone[key] = originalObject[key];
}

С помощью jQuery

let clone = jQuery.extend(true, {}, originalObject);

С помощью объекта JSON

let clone = JSON.parse(JSON.stringify(originalObject));

Массивы

С помощью Spread

let clone = [...originalArray];

С помощью Slice

let clone = originalArray.slice();
blog comments powered by Disqus