1. 정답 코드

// 홀수번째만 출력하기
const aniArr = ['강아지', '망아지', '야옹이', '어흥이', '거북이'];
const resultArr = aniArr.map((name, index) => {
// 배열은 0부터 시작하고, 홀수를 출력하라는 게 아닌 홀수'번째'를 출력하라고 했으므로 강아지가 첫 번째가 됨
if (index % 2 == 0) {
console.log(name);
}
});
console.log(resultArr);

 

출력 결과: 강아지, 야옹이, 거북이


2. 내가 이해한 코드

// 홀수번째만 출력하기
const aniArr = ['강아지', '망아지', '야옹이', '어흥이', '거북이'];
const resultArr = aniArr.map((name, index) => {
if (index % 2 == 1) {
console.log(name);
}
});
console.log(resultArr);

 

출력 결과: 망아지, 어흥이


3. 왜 오해가 발생했을까?

홀수 인덱스의 요소홀수번째 요소를 혼동했다. 홀수번째 출력이라고 하길래 자연스럽게 인덱스는 0부터 시작하므로 짝수이고, 따라서 1번째 요소인 망아지부터 출력해야 하니 index % 2 == 1 로 계산한 것.

그러나 강사님의 의도는 홀수번째 요소를 출력하라는 거였다...

 

1. 홀수 인덱스의 요소

  • 인덱스는 0부터 시작한다.
  • 인덱스가 홀수인 요소는 배열의 1, 3, 5, ... 번째 인덱스에 있는 요소를 의미한다.

 

2. 홀수번째 요소

  • 여기서 번째는 사람의 카운팅 방법처럼 1부터 시작한다.
  • 배열의 첫 번째, 세 번째, 다섯 번째, ... 요소를 의미한다.

배열이 ['강아지', '망아지', '야옹이', '어흥이', '거북이'] 라고 한다면

홀수 인덱스의 요소

  • 인덱스 1: '망아지'
  • 인덱스 3: '어흥이'

홀수번째 요소:

  • 첫 번째 요소 (인덱스 0): '강아지'
  • 세 번째 요소 (인덱스 2): '야옹이'
  • 다섯 번째 요소 (인덱스 4): '거북이'

 

프로그래밍에서는 항상 0부터 시작하지만 일상적으로 숫자를 셀 때는 1부터 세기 때문에 혼동이 온 것 같다.

 

문제 풀면서 든 내 심정

복사했습니다!