인프런 커뮤니티 질문&답변
궁금한게 있습니다.!!
작성
·
284
0
let arr = [1,2,3];
let arr2 = arr.slice();
arr2[1] = 10;
console.log(arr); //[ 1, 2, 3 ]
단순히 이런 코드는 // [1, 2, 3];이 나오는 반면에.
DFS탐색을 하는 과정중 2차원 배열을 복사해서 새로운 변수에 할당해 일회성으로
쓰고 싶을때. 새로 만든 2차원 배열을 건들면 기존에 있던 2차원 배열도 변하는
이유가 뭔가요???
답변 1
1
김태원
지식공유자
안녕하세요^^
slice() 함수는 기본형 데이터에 대해서만 깊은복사를 합니다.
1차원 배열은 Integer같은 기본형 데이터를 담고 있지만, 2차원배열은 1차원 배열객체를 담고 있는 구조이기 때문에 깊은 복사가 되지 않습니다.





