정답 숫자마다 입력값에서 일치하는 숫자가 있는지 찾을 때는 배열에서 요소를 찾는 indexOf()를 사용합니다. value.indexOf(answer[i])로 작성하면 됩니다. 바로 이해하기 어려우니 설명을 위해 answer 배열에 든 정답이 [1, 5, 4, 2], value에 있는 입력값은 ‘2346’으로 가정하겠습니다. '2346'.indexOf(1)이나 '2346'.indexOf(5)를 하면 -1이 나옵니다. '2346'.indexOf(4)를 하면 인덱스 2에 4가 있으므로 2가 반환됩니다. 이때 index와 i가 일치하므로 스트라이크가 됩니다. '2346'.indexOf(2)를 하면 0이 반환됩니다. -1은 아니지만 i와 일치하지 않으므로(i === 3) 볼이 됩니다. 반복문을 다 돌고 나면 최종적으로 1 스트라이크 1 볼이 됩니다.
그림 7-5 정답과 입력값 비교