>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 상호 연결된 개체 배열을 가장 잘 복사하는 방법은 무엇입니까?

JavaScript에서 상호 연결된 개체 배열을 가장 잘 복사하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-11 19:51:14199검색

How to Best Deep Copy an Array of Interconnected Objects in JavaScript?

상호 연결된 객체의 배열 복사

동일한 배열 내의 다른 객체에 대한 참조가 있는 객체 배열과 같은 복잡한 데이터 구조로 작업할 때 진정한 전체 복사본을 생성합니다. 어려울 수 있습니다. 다양한 접근 방식을 살펴보겠습니다.

structuredClone을 사용하여 전체 복사 생성

전체 복사를 위한 최신 솔루션은 StructuredClone()을 사용하는 것입니다.

array2 = structuredClone(array1);

이 방법은 광범위한 범위를 지원합니다. 다양한 데이터 유형을 지원하며 대부분의 브라우저에서 지원됩니다.

다음을 사용하여 전체 복사본 만들기 JSON.parse

JSON 직렬화 가능 콘텐츠가 포함된 객체의 경우 간단한 한 줄 솔루션은 다음과 같습니다.

let clonedArray = JSON.parse(JSON.stringify(nodesArray))

그러나 다른 솔루션에 비해 직렬화할 수 없는 콘텐츠 및 성능 문제로 인해 제한이 있습니다.

확산 연산자를 사용하여 깊은 복사본 만들기

배열에 얕은 객체가 포함된 경우 확산 연산자가 결합됩니다. .map()을 사용하면 빠르고 효율적인 전체 복사를 수행할 수 있습니다.

clonedArray = nodesArray.map(a => ({...a}));

이 방법은 JSON.parse보다 성능이 훨씬 뛰어납니다.

고려 사항

  • 성능: 딥 카피의 성능은 데이터 구조의 크기와 복잡성에 따라 달라질 수 있습니다. 다양한 접근 방식을 벤치마킹하는 것이 좋습니다.
  • 호환성: StructuredClone()에는 비교적 새로운 브라우저 버전이 필요합니다. 호환성이 중요하다면 대체 방법을 사용하십시오.
  • 직렬화 대 복제: 객체를 네트워크를 통해 전송해야 하는 경우 복제 대신 직렬화를 고려할 수 있습니다.

위 내용은 JavaScript에서 상호 연결된 개체 배열을 가장 잘 복사하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.