Вопроса 1. Я задавался вопрос, почему
Клона «суб-массив» из массива объектов (где объекты глубоко вложенные)
JSON.parse(JSON.stringify(obj.slice(1, 3))) and
obj.slice(1,3)
дает одинаковый вложенный массив объектов, как объем производство, так как obj.slice(1,3)
не допускается правильно клонировать вложенные объекты?
Вопрос 2. Является ли JSON.parse(JSON.stringify(obj.slice(1, 3)))
правильным способом глубокого клонирования подматрицы?
OBJ детали -
var obj= [{ name: "wfwfwfw.)csdfsd",
tags: [ "dfbdf>>sfdfds", "fsdfsdf&fsfd" ],
newer: { first: "this'one", second: ["that>.one", "another.'one"], third: {something: "some/>fded", newthing: "ddasd..>sqw"} },
final: [ {gh: "ty/fgfg", hj: "rt((ssds"}, {gh: "dqqq...g", hj: "gnm))s"} ]
},
{ name: "wfwfwwwwwwfw.)csdfsd",
tags: [ "dfbdf>>sfdfds", "fsdfsdf&fsfd" ],
newer: { first: "this'one", second: ["that>.one", "another.'one"], third: {something: "some/>fded", newthing: "ddasd..>sqw"} },
final: [ {gh: "ty/fgfg", hj: "rt((ssds"}, {gh: "dqqq...g", hj: "gnm))s"}]
},
{ name: "aa.)csdfsd",
tags: [ "dfbdf>>sfdfds", "fsdfsdf&fsfd" ],
newer: { first: "this'one", second: ["that>.one", "another.'one"], third: {something: "some/>fded", newthing: "ddasd..>sqw"} },
final: [ {gh: "ty/fgfg", hj: "rt((ssds"}, {gh: "dqqq...g", hj: "gnm))s"}]
},
{ name: "nn.)csdfsd",
tags: [ "dfbdf>>sfdfds", "fsdfsdf&fsfd" ],
newer: { first: "this'one", second: ["that>.one", "another.'one"], third: {something: "some/>fded", newthing: "ddasd..>sqw"} },
final: [ {gh: "ty/fgfg", hj: "rt((ssds"}, {gh: "dqqq...g", hj: "gnm))s"}]
}]
'obj.slice (1,3) и' JSON.parse (JSON.stringify (obj.slice (1, 3))) 'дают тот же результат, потому что они делайте то же самое. Достаточно времени, чтобы добраться туда. – Tibrogargan
Означает ли это, что obj.slice (1,3) можно использовать для объектов глубокого клонирования? – vjjj
No slice - это просто копирование ссылок. Ссылки в результате, возвращаемые 'obj, slice', являются теми же, что и в' obj'. 'JSON.stringify' создает строки из ваших объектов, тогда' JSON.parse' превращает строку в новые объекты с одинаковой структурой. Вы получаете тот же результат, что и копии.Невозможно рассказать им обособленно (за исключением того, что у них разные адреса в памяти, т. Е. Используя ===) – Tibrogargan