Page 31 -
P. 31

이 장에서 사용한 for 문 외에 배열에서도 반복문 역할을 하는 메서드들이 있습니다. 대표적으
                    로 forEach가 있습니다. 몇 스트라이크 몇 볼인지 검사하는 부분을 다음과 같이 forEach 메서

                    드로 바꿔 작성할 수 있습니다.


                        answer.forEach((number, aIndex) => {
                          const index = value.indexOf(String(number));
                          if (index > -1) { // 일치하는 숫자 발견
                            if (index === aIndex) { // 자릿수도 같음
                              strike += 1;                                                           5장
                            } else { // 숫자만 같음
                              ball += 1;
                            }
                          }                                                                          반복문 사용하기_숫자야구 게임
                        });



                    answer 배열에 있는 요소들을 forEach 메서드로 순회합니다. forEach는 인수로 함수를 받고,
                    배열의 요소 하나하나에 인수로 받은 함수를 각각 적용합니다. 이때 요소 순서대로 함수를 적

                    용하므로 반복문의 역할을 하게 됩니다.

                    그림 5-8 forEach의 인수
                    forEach                1일 때        5일 때         4일 때        2일 때
                    (number, index) => {   number = 1   number = 5   number = 4   number = 2
                      // 내용                index = 0   index = 1    index = 2   index = 3
                    }


                    앞의 예제에서는 index 대신 aIndex를 매개변수명으로 사용했습니다.


                      제로초의 조언
                      저는 개인적으로 프로그래밍할 때 for 문을 아예 사용하지 않고, 모든 값을 배열로 만들어서 처리합니다. 그만큼 배열
                      의 메서드가 강력하기 때문입니다.


                        const numbers = [];
                        for (let n = 1; n <= 9; n += 1) {
                          numbers.push(n);
                        }


                                                                                           계속
                                                                                                 257
   26   27   28   29   30   31   32   33   34   35