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