자바스크립트 복사 배열

| | | | | | | | | | | | | | | | | | | | | |

JavaScript 에서 배열 복사는 할당 연산자(=)를 사용하여 복제본을 만드는 것만큼 쉽지 않습니다. 이전에 이것을 시도했다면 원래 목록에만 연결된다는 사실에 놀랄 것입니다. 무엇이 문제인가요?

이 가이드에서는 JavaScript 배열을 복사하는 방법을 설명합니다. 배열 복사를 시작할 수 있도록 세 가지 JavaScript 배열 복사 전략에 대한 코드를 살펴보겠습니다.

JavaScript 배열 복사 문제

한 수준에서 " = & Rdquo; 연산자는 새로운 변수 배열 사본을 생성합니다. 그러나 이것은 복사본보다 포인터에 가깝습니다. 이것은 "=" 연산자가 원래 배열에 대한 참조를 생성하기 때문입니다. 기존 테이블의 복제본을 생성하지 않습니다.

다음을 시도해 보겠습니다. 다른 코드 없이 할당 연산자 를 사용하여 배열 복사본을 만듭니다.

우리 코드 반환:

나 t 우리 테이블이 복사된 것 같습니다. "Fruit"에는 "berries" 배열의 모든 값이 포함되어 있습니다.

이제 "fruits" 배열 폴더에 요소를 추가해 보겠습니다.

과일 시리즈에 "멜론"을 추가했습니다. 다음으로 "fruits" 및 "berries" 값을 콘솔에 출력합니다.

"과일"과 "열매"는 모두 동일한 값을 포함합니다. 이것은 기술적으로 우리 베이를 복제하지 않았기 때문입니다. 우리는 이것에 대한 참조를 생성했습니다.

"berries" 배열을 조작할 때마다 "fruits" 배열 필드에 변경 사항이 적용됩니다.

자바스크립트 배열을 복사하는 방법

할당 연산자는 배열을 복사하지 않습니다. 우리는 다른 접근 방식을 사용해야 합니다. 우리에게는 운 좋게도 그림을 복사하는 방법이 많이 있습니다. 세 가지 주요 접근 방식은 다음과 같습니다.

자 하나씩 토론해 보세요.

확산 연산자 사용

확산 연산자는 JavaScript ES6에 도입된 기능입니다. 이 연산자는 .iterable의 콘텐츠에 대한 액세스를 제공합니다. 이 연산자는 자주 사용됩니다. 배열의 얕은 복사본 만들기

연산자 스프레드에는 세 개의 점이 타원(& hellip;)으로 표시됩니다. 이전의 "베리" 배열 복사본을 만들어 보겠습니다.

배열의 복사본을 만들기 위해 스프레드 연산자를 사용했습니다. 우리는 배열의 값을 확인합니다. o 올바른지 확인하십시오.

우리 코드는 다음을 반환합니다.

값 " Melon " "fruits " Carrier에만 추가되었습니다. 사실, 방송 연산자를 사용하여 중복 벡터 " berries "를 생성했습니다. 이제 "fruit " 테이블은 자체 테이블입니다. 그의 값은 "berry" 테이블로 구분됩니다. .

루프 사용

for 루프의 사용은 그림의 복사본을 만드는 좋은 방법입니다.

이것은 메서드는 여러 줄의 코드가 필요하기 때문에 전파 연산자로 선호되지 않을 수 있습니다. 그러나 for 루프는 개체를 복사합니다.

우리는 두 개의 목록을 선언했습니다: 베리와 과일. 과일은 처음에는 빈 목록입니다. 그래서 for 루프를 사용하여 l의 모든 요소를 반복합니다. iste "berries" . 목록의 각 항목에 대해 값이 "fruit" 배열 폴더에 복사됩니다.

다음을 실행해 보겠습니다. 배열이 분리되어 있는지 테스트합니다.

코드 반환:

성공 ! "열매"와 "과일"은 두 개의 별도 테이블입니다.

Array.from() 사용

메서드 Array.from () 는 iterable 객체를 배열로 변환합니다. iterable의 각 요소를 통해 새 배열에 추가합니다. 이것은 배열을 복사하는 데 사용할 수 있음을 의미합니다.

자 "딸기" 배열의 복사본을 다시 만듭니다.

이 솔루션은 스프레드 연산자의 구문과 마찬가지로 두 줄의 코드만 필요합니다. 효율적이고 테이블을 복사하는 간결한 방법 이제 ; 새 배열을 확인하기 위해 테스트를 실행합니다.

코드 반환:

테이블이 성공적으로 복사되었습니다.

결론

자바스크립트에서 배열을 복사하는 방법을 알면 쉽습니다.

배열을 복사하는 데 할당 연산자로는 충분하지 않습니다. 배열. 이는 할당 연산자가 기존 배열에 대한 포인터를 생성하기 때문입니다. 새 테이블을 만들지 않습니다.

확산 연산자, for 루프 또는 Array.from () 메서드를 사용하여 배열의 복사본을 만들 수 있습니다. 이제 전문가처럼 JavaScript로 테이블을 복사할 준비가 되었습니다.