slice()
은 MDN에서 다음과 같이 정의한다.
slice()
메소드는 어떤 배열의begin
부터end
까지에 대한 얕은 복사본을 새로운 배열 객체로 반환한다.
arr.slice(begin, [end])
의 형태로 사용하는데 매개변수 없이 사용하게 되면 원본에 대한 복사본을 반환한다.
코드
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 ]
원본 array와 별개로 복사본 copiedArray를 만들 수 있다.
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 ]
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 ]