>웹 프론트엔드 >JS 튜토리얼 >ES6에서 배열을 복제하는 방법은 무엇입니까?

ES6에서 배열을 복제하는 방법은 무엇입니까?

王林
王林앞으로
2023-09-12 08:09:031458검색

如何在 ES6 中克隆数组?

ES5에서는 배열을 복사하기 위해 concat 메소드를 사용합니다. 또한 일부 개발자는 참조된 배열의 모든 요소를 ​​분할하고 0을 인수로 전달하여 새 배열을 만드는 Slice() 메서드를 사용합니다.

사용자는 아래 예에 따라 슬라이스() 메서드를 사용하여 배열을 복제할 수 있습니다. 우리는 다양한 데이터 유형의 값을 포함하는 array1을 만들었습니다. 그런 다음, Slice() 메소드를 사용하여 array1을 복사하고 "clone" 변수에 저장합니다.

으아아아

사용자들은 ES5에서 배열을 복제하는 방법을 배웠습니다.

또한 사용자는 할당 연산자를 사용하여 문자열, 숫자, 부울과 같은 일반 변수처럼 배열을 복사하는 것을 고려할 수 있습니다.

대입 연산자를 사용하여 배열을 복사할 때 사용자에게 문제가 발생할 수 있습니다. 다음 예를 통해 이해해 보자.

대입 연산자를 사용하여 배열 복사

아래 예에서는 문자열 배열에 다양한 문자열이 포함되어 있습니다. strings 배열을 strings2 배열에 할당했습니다. 그런 다음 새 문자열 값을 strings2 배열에 푸시합니다.

으아아아

위 출력에서 ​​사용자는 문자열 값을 strings2 배열에 푸시하면 문자열 배열에도 푸시된다는 것을 확인할 수 있습니다. 왜 이런 일이 발생합니까?

여기서 가변 객체와 불변 객체의 개념이 적용됩니다.

변경 가능한 객체와 불변 객체

JavaScript에서 배열과 객체는 변경 가능합니다. 즉, 생성 후 초기화한 후 값을 변경할 수 있습니다. 따라서 위의 예에는 strings2 배열이 존재하지 않습니다. strings 배열을 strings2 배열에 할당하면 strings 배열에 대한 참조가 생성됩니다. 따라서 strings2 배열을 변경할 때마다 strings 배열도 변경됩니다.

따라서 다른 배열을 참조하지 않고 배열의 실제 복사본을 만들어야 합니다

이제 ES6에서 배열을 복제하는 방법을 알아 보겠습니다.

ES6에서 스프레드 연산자(...)를 사용하여 배열 복제

확산 연산자의 구문은 점 세 개(...)입니다. 이를 사용하여 배열과 같은 반복 가능한 객체를 확산할 수 있습니다. 스프레드 연산자는 배열이나 객체의 새 복사본을 만듭니다.

문법

사용자는 다음 구문에 따라 스프레드 연산자를 사용하여 배열을 복사할 수 있습니다.

으아아아

아래 예에서는 다양한 부울 값을 포함하는 부울 배열을 만들었습니다. 그런 다음 스프레드 연산자를 사용하여 부울 배열의 복사본을 만들고 해당 복사본을 booleanCopy 변수에 할당합니다.

출력에서 사용자는 booleanCopy 배열에 부울 배열에 포함된 것과 동일한 값이 포함되어 있음을 확인할 수 있습니다.

으아아아

아래 예에서 차원 배열에는 다양한 숫자 값이 포함되어 있습니다. 스프레드 연산자를 사용하여 크기 배열의 복사본을 만들고 할당 연산자를 사용하여 izedClone 변수에 배열을 저장했습니다.

그런 다음 60을 sizeClone 배열에 푸시합니다.

으아아아

위 출력에서 ​​사용자는 60이 sizesClone 배열에 반영되지만 Sizes 배열에는 반영되지 않음을 확인할 수 있습니다. 예 2와 같이 배열을 참조하는 대신 배열의 실제 복사본을 생성했기 때문입니다.

이제 사용자는 ES6에서 할당 연산자가 사용되지 않는 이유와 확산 연산자가 배열 복제에 사용되는 이유를 명확하게 이해합니다.

위 내용은 ES6에서 배열을 복제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제