inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Giới thiệu về giải quyết vấn đề thuật toán JavaScript (chuẩn bị cho bài kiểm tra mã hóa)

안녕하세요. 배열 앝은 복사 관련 질문드립니다.

272

gimdongjun33160621

1 câu hỏi đã được viết

0

수업 설명에서 아래 코드와 같이 배열을 복사했을때 주소값을 복사하는 것이기 때문에 두개의 변수를 출력했을때 같다고 하셨습니다. 

하지만 실행했을 때 사진과 같이 나오는데 이유가 뭘까요..? ㅠ

let arr=[];
let answer = arr;
console.log(answer);
console.log(arr);
arr = [12345]
console.log(answer);
console.log(arr);
>>>결과 console

배열 코테 준비 같이 해요! 얕은복사 javascript

Câu trả lời 2

2

jjang9

arr를 재할당해서 그렇습니다.

처음 arr = [1,2,3,4,5] 와 answer는 같은 참조값을 가지고 있기때문에 서로 값이 공유되지만,
arr 를 새로운 값으로 할당한 경우 arr는 새로운 참조값을 갖게되는 반면 answer는 여전히 [1,2,3,4,5]를 참조하고 있습니다. 

arr = [1,2,3] 으로 새로운 값을 할당하는것이 아니라 arr.pop() 혹은 arr.shift() 를 했을 경우엔 answer역시 arr와 같은 값을 가지는 것을 볼 수 있습니다. 

혹은 arr = [1,2,3] 로 재할당한 이후에 다시 answer = arr로 해주게되면 answer역시 [1,2,3]으로 다시 같은값을 공유하게 됩니다. 

해당개념의 경우엔 가비지컬렉션을 같이 살펴보시면 좋을거 같아요

https://ko.javascript.info/garbage-collection

* 혹시라도 제가 틀렸을경우엔 올바르게 지적 부탁드립니다 *_*

0

gimdongjun33160621

완전 이해했습니다! 감사합니다

1

codingcamp

안녕하세요^^

위에분 juuu o 님의 말씀대로 입니다.

let arr=[] //빈배열의 주소값 100번지가 할당됩니다.

answer=arr //answer도 100번지를 참조합니다. arr과 answer는 같은 곳을 참조하는 상황입니다.

arr=[1, 2, 3, 4, 5] //arr에 새로운 배열 [1, 2, 3, 4, 5]의 주소인 200번지가 할당됩니다.

여기까지의 상황은 arr은 200번지를 참조하고 있고, answer는 여전히100번지를 참조하고 있는 상황입니다.

0

gimdongjun33160621

친절한 설명 감사합니다!

continue를 사용하는 이유

0

75

2

정렬 가능 여부 판단하기

0

62

2

알고리즘 학습법 관련해서 질문드립니다.

0

81

1

코드 리뷰 부탁드립니다!

0

88

1

indexOf를 사용해서 풀어보았습니다 !!

0

67

1

저는 이런식으로 구현 해보았습니다 !!

0

63

1

12,13,14 강의 소리만 나오고 검은 화면입니다

0

97

3

반복문 최소화하고 indexOf 사용해서 풀어봤습니다

0

61

1

영상 보기 전에 직접 풀어봤습니다.

0

71

1

섹션1의 17번문제 이 풀이로 풀어도 될까요?

0

133

2

정규표현식으로 처리해도 상관없나요 ?

0

119

2

3칸씩 건너뛸 수 있을 경우

0

124

2

강의에 대해 질문있습니다.

0

133

2

Object와 Set을 이용해 풀어봤습니다.

0

116

2

이렇게 해도 되나요?

0

102

2

선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.

0

144

2

이렇게 풀어도 괜찮을까요?

0

136

1

이렇게 풀어도 괜찮을까요?

0

112

1

모든 아나그램 찾기에서 시간복잡도

0

98

1

코드리뷰 부탁드립니다.

0

129

1

for loop 탈출은 return 문으로 해도 되지 않나요?

0

130

1

투포인트알고리즘으로 풀어봤습니다.

0

139

0

코드 리뷰 부탁드립니다.

0

116

1

코드 맞게 작성한 거 아닌가여??

0

143

1