Рубрики
Без рубрики

Deepclone объект с помощью JavaScript

Привет там 🙌. Спасибо, что показ любви и поддержки на последнем посте. В этой статье мы увидим, как … Tagged с JavaScript, WebDev, новичками, программированием.

Привет там 🙌.

Спасибо, что показ любви и поддержки на последнем посте. В этой статье мы увидим, как мы можем создать глубокий клон объекта, используя 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”