기억 휘발 방지소

[JavaScript] 배열 복사하기 본문

Web/JavaScript

[JavaScript] 배열 복사하기

choice91 2021. 8. 27. 23:50
728x90
반응형

배열을 복사하는 2가지 방법

1. slice()

slice()은 MDN에서 다음과 같이 정의한다.
slice() 메소드는 어떤 배열의 begin부터 end까지에 대한 얕은 복사본을 새로운 배열 객체로 반환한다.

arr.slice(begin, [end])

arr.slice(begin, [end])의 형태로 사용하는데 매개변수 없이 사용하게 되면 원본에 대한 복사본을 반환한다.

 

코드

const array = [1, 2, 3, 4, 5];
const copiedArray = array.slice();
copiedArray.push(6);
console.log("array:", array);
console.log("copiedArray:", copiedArray);

 

결과

array: [ 1, 2, 3, 4, 5 ]
copiedArray: [ 1, 2, 3, 4, 5, 6 ]

원본 array와 별개로 복사본 copiedArray를 만들 수 있다.

 

2. spread 연산자

const 새로운배열 = [...원본배열]의 형태로 원본에 대한 복사본을 만들 수 있다.

 

코드

const array = [1, 2, 3, 4, 5];
const copiedArray = [...array];
copiedArray.push(6);
console.log("array:", array);
console.log("copiedArray:", copiedArray);

결과

array: [ 1, 2, 3, 4, 5 ]
copiedArray: [ 1, 2, 3, 4, 5, 6 ]

 

3. concat()

concat()은 MDN에서 다음과 같이 정의한다.
concat() 메서드는 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 반환한다.

 

concat()도 기존의 배열을 변경하지 않기 때문에 배열을 복사하는 용도로도 사용할 수 있다.

 

코드

const array = [1, 2, 3, 4, 5];
const copiedArray = array.concat();
copiedArray.push(6);
console.log("array:", array);
console.log("copiedArray:", copiedArray);

 

결과

array: [ 1, 2, 3, 4, 5 ]
copiedArray: [ 1, 2, 3, 4, 5, 6 ]
728x90
반응형