JavaScript에서 객체의 딥 클로닝...
2792 단어 learnprogrammingjavascriptwebdev
그리고 우리는 일반적으로 개체를 완전히 복제하기 위해 잘 알려진 접근 방식을 따릅니다.
lodash's cloneDeep method
JSON.parse(JSON.stringify(object))
위의 두 가지 접근 방식을 사용해서는 안 되며 개체를 완전히 복제하는 사용자 지정 방법을 만들어야 한다고 말하면 어떻게 됩니까?
그에 대한 답변이 있습니다. 개체의 심층 복제를 달성하는 데 도움이 되는 유틸리티 메서드를 작성해 보겠습니다.
예시
아래와 같이 중첩된 개체가 있다고 가정해 보겠습니다.
let emptyStack = {
feTools: 'JS, React, NextJS, Tailwindcss, Netlify',
react: {
baseConcepts: 'props, states, hooks',
advancedConcepts: {
hoc: 'composition of the functions',
contextApi: 'Sharing the data without prop drilling'
}
}
}
따라서 위에서 볼 수 있듯이
emptyStack
내부에 중첩된 개체가 있습니다. 개체의 심층 복제를 달성하기 위해 실행해야 하는 모든 단계를 이해하고 평가해 봅시다.의사 코드
단계:
궁극적인 유틸리티 방법
function deepCopy(currentObj) {
let newObj = Array.isArray(currentObj) ? [] : {}; //Step#1
for (let key in currentObj) { //Step#2
let property = currentObj[key];
if (typeof property === "object") {
newObj[key] = deepCopy(property); //Step#3
} else {
newObj[key] = property; //Step#3
}
}
return newObj;
}
용법
let deepClonedObject = deepCopy(emptyStack)
console.log(`${JSON.stringify(deepClonedObject)}`)
/** Output
{"feTools":"JS, React, NextJS, Tailwindcss, Netlify","react":{"baseConcepts":"props, states, hooks","advancedConcepts":{"hoc":"composition of the functions","contextApi":"Sharing the data without prop drilling"}}} */
위의 방법에서 사용된 모든 개념은 무엇입니까?
결론
객체 심층 복제는 복제된 객체에 대해 역참조를 발생시키려는 시나리오에서 정말 유용합니다.
목록과 관련된 더 많은 게시물이 있습니다... 그러니 계속 읽으세요.
이 글을 읽어주셔서 미리 감사드립니다...🚀
나는 당신과 연결하게되어 기쁩니다
당신은 또한 나를 찾을 수 있습니다
Reference
이 문제에 관하여(JavaScript에서 객체의 딥 클로닝...), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nitinreddy3/deep-cloning-of-an-object-in-javascript-480k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)