inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문

9-5강 승부 판단하기 부분 문의드립니다.

197

인프러너

작성한 질문수 58

0

const checkWinner = (target) => { let rowIndex; let cellIndex; rows.forEach((row, ri) => { row.forEach((cell, ci) => { if(cell === target) { rowIndex = ri; cellIndex = ci; console.log(ri,ci) } }) }) let hasWinner = false; if( rows[rowIndex][0].textContent === turn && rows[rowIndex][1].textContent === turn && rows[rowIndex][2].textContent === turn ){ hasWinner = true; } console.log(hasWinner) }
소스를 보면 위와같이 forEach문을 사용해서 현재 내가 클릭한 row,cells의 index값을 가져오는 소스입니다.
소스를 분석해보면 클릭한 위치를 찾기 위해서는 위와같은 소스가 만들어져야 한다는 것을 알 수 있습니다.
그런데 앞장부터 책을 보면서 진행을 하다보면 생각하는 과정이 어떻게 되서 위와같은 checkWinner라는 함수를 만들고 그 안에서 forEach를 사용해서 만들어지는지 전혀 모르겠어요.ㅠㅠ
그러니까..
[
[td],[td],[td]
[td],[td],[td]
[td],[td],[td]
]
이런식으로 배열이 만들어져서 그중에 2행 2열의 td의 클릭한 값을 가져오기 위해서는 제로초님이 만드신 forEach문을 사용해서 가져오면 된다는것은 알 수 있는데..
그런 소스가 만들어지기까지의 과정을 모르겠습니다.
어떻게 생각을 하고, 어떤 방향으로 고민을 해야 만들어질 수 있는지 훈련을 할려면 어떻게 해야할까요??
결론적으로.
소스를 보면 과정들이 이해가 가는데..
checkWinner라는 함수를 생각해내는 것 까지는 어렵지는 않은데(복잡해지니까 기능단위로 따로 빼면 되니까요)
checkWinner라는 함수 안에 forEach를 사용해서 문제를 하결하는 과정은 입문자 입장에서는 아무리 고민을 하고, 이해를 하려고 해도 쉽지가 않습니다.ㅠㅠ
이럴 경우에는 어떤식으로 진행을 하고, 고민을 하고 공부를 해야하는지 조언 부탁드립니다.ㅜㅠㅜ

javascript

답변 1

0

제로초(조현영)

모든 것을 머리속에서 떠올릴 수는 없습니다. 천재가 아니라면요. 그럴 때는 이미 구현되어있는 많은 코드를 보고 그 코드를 분석하거나 외우는 수밖에 없습니다. 물론 남의 코드를 보기 전에 충분히 고민하는 시간은 가져야 합니다.

이차원 배열 데이터구조를 사용했는데 어떤 구조를 선택할지에 대해서는 자료 구조같은 수업을 들어보는 것도 좋습니다.

0

인프러너

빠른 답변 감사합니다.

조언해주신대로 100% 이해하려는 욕심은 버리고 흐름이나 코드 분석 위주로 학습을 먼저 진행을 하는게 좋을 것 같네요.

보고 또 보고 하는식으로 진행을 해서 익숙해지고, 자연스럽게 외워지도록 진행을 하는게 좋을 것 같네요^^

일단 자바스크립트먼저 끝내고 자료구조도 학습을 진행하겠습니다.

감사합니다.

자바스크립트 입문 강의 재생 안됨

0

76

2

쿵쿵따 조건문 질문입니다.

0

72

2

렛츠가릿 자바스트립트와 공유가 되나요

0

77

1

수강을 하기 전 공부순서에 관한 질문이 있습니다.

1

100

2

안녕하세요

0

101

2

1~45 필터링하는 코드에서 find대신 some써주는게 나을거같습니다.

1

76

2

고차 함수 작성법과 수업 진도 관련한 질문

0

82

3

break와 continue 9:55 내 continue 구문 질문

0

153

2

옵셔널 체이닝 적당한 깊이는 어느 정도인가요?

0

121

2

로또 추첨기 중 입력값을 검사할 때

0

136

2

2-14.else,else if,switch 관련 질문입니다.

0

109

2

가위바위보 이미지(rsp.png)가 안보여요

0

264

3

Math.random() 에 9을 곱하는 이유

0

174

4

클로저 관련해서 질문있습니다.

1

188

2

유튜브 댓글 보고 왔습니다!- 퀴즈 중복된 숫자 검사 for 문

0

246

1

event.target.textContent관련 질문

0

273

2

객체 참조 관련 질문

0

179

1

-2+ -2 = -4 음수 더하기 음수 - 셀프체크 계산기

0

464

1

별찍기 마름모 문제입니다.

0

351

2

숙제 질문

0

217

1

5강 async/await으로 가독성 높이기에서

0

231

1

야구게임 관련 질문입니다

0

186

1

쿵쿵따, 계산기에서 변수 선언

0

181

1

지뢰 힌트 사라짐(대괄호)

0

167

1