알고리즘 스터디 js 트릭

jimmy neutron·2023년 2월 1일

알고리즘

목록 보기
2/3

1. 2차원 배열 깊은 복사

1차원 배열을 깊은 복사할 때는

const arr = [1];
const arr2 = arr.slice();

slice메서드를 통해 메모리에서 참조하는 객체를 다르게 하는 것이 가능했다.
하지만 2차원 배열에서 이 방법을 똑같이 사용한다면

const arr1 = [[1,2],[1,2,3]];
const arr2 = arr1.slice();
arr2[1][1] = 5;
console.log(arr1);
// [ [ 1, 2 ], [ 1, 5, 3 ] ]

1차원 배열은 복사가 되지만 2번째 depth배열은 얕은 복사가 되어버린다.
이를 해결하기 위해서는 map메서드를 사용할 수 있다.

const arr1 = [[1,2],[1,2,3]];
const arr2 = arr1.map((v) => [...v]);
arr2[1][1] = 5;
console.log(arr1);
// [ [ 1, 2 ], [ 1, 2, 3 ] ]
profile
프론트엔드로 지구정복

0개의 댓글