Привет там 🙌.
Спасибо, что показ любви и поддержки на последнем посте. В этой статье мы увидим, как мы можем создать глубокий клон объекта, используя JavaScript.
Давайте на это
Здесь мы принимаем этот тестовый объект, и мы должны создать копию этого объекта, где следует работать следующие условия:
Выход – Deep Clone Object, в котором вход Assertion False I.E
Тест Obj obj//false
Если мы изменим какое-либо значение в тестовом объекте, то он не должен влиять на клонированный объект.
// write a function to deep clone an object let test = { past: [{day: 31}, {month: 12}, {year: 2020}], present: [{day: 1}, {month: 1}, {year: 2021}] }
Мы решим эту проблему с помощью рекурсивной функции и уменьшите большую проблему на меньшие куски.
let test = { past: [{day: 31}, {month: 12}, {year: 2020}], present: [{day: 1}, {month: 1}, {year: 2021}] } const deepClone = (input) => { let result = {}; // logic here return result; } console.log(deepClone(test))
Итак, здесь мы переполнем каждый ключ в объекте, поэтому мы будем использовать за
петля. Узнать больше
for (let key in input){ result[key] = deepClone(input[key]) }
Используя это, мы получим следующий выход, в котором у нас есть только пустые объекты, а значение не передается в каждую клавишу.
// output [ past: [ [ day: [] ], [ month: [] ], [ year: [] ] ], present: [ [ day: [] ], [ month: [] ], [ year: [] ] ] ]
Чтобы получить каждое значение, мы должны проверить, является ли вход объектом или нет! Если вход не является типом объекта, мы просто вернем входное значение.
if (typeof input !== 'object'){ return input }
После применения вышеуказанного состояния мы просто достиг нашего вывода и просто понадобятся данные в точном формате. На данный момент у нас есть следующий вывод.
[ past: [ [ day: 31 ], [ month: 12 ], [ year: 2020 ] ], present: [ [ day: 1 ], [ month: 1 ], [ year: 2021 ] ] ]
Чтобы исправить это, мы должны проверить тип ввода, и если это массив, то мы назначаем результаты как пустой массив еще объект.
let result = Array.isArray(input) ? [] : {}
Итак, здесь, наконец, мы закончили с помощью кода внедрение глубокого клонирования объекта, используя рекурсивный подход в JavaScript. Надеюсь, что это решение поможет вам понять основы.
Теперь у вас руки на Кодовая площадка.
Там есть бесконечные суммы полезных ресурсов, поэтому, если у вас есть какие-либо рекомендации, пусть все знают в комментариях. Я хотел бы добавить еще несколько закладок.
Большое спасибо за чтение и рекомендуем мне некоторые темы, о которых вы любите читать. 🙌.
Оригинал: “https://dev.to/nandkk05/deepclone-an-object-using-javascript-2apl”