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
반응형