인프런 커뮤니티 질문&답변

김영일님의 프로필 이미지
김영일

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

7. 섬나라 아일랜드(DFS)

궁금한게 있습니다.!!

작성

·

254

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차원 배열객체를 담고 있는 구조이기 때문에 깊은 복사가 되지 않습니다.

김영일님의 프로필 이미지
김영일

작성한 질문수

질문하기