profile image

L o a d i n g . . .

정답 코드

// 홀수번째만 출력하기
const aniArr = ['강아지', '망아지', '야옹이', '어흥이', '거북이'];

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

console.log(resultArr);

 

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


내가 이해한 코드

// 홀수번째만 출력하기
const aniArr = ['강아지', '망아지', '야옹이', '어흥이', '거북이'];

const resultArr = aniArr.map((name, index) => {
	if (index % 2 == 1) {
	console.log(name);
	}
});

console.log(resultArr);

 

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


왜 오해가 발생했을까?

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

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

 

1. 홀수 인덱스의 요소

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

 

2. 홀수번째 요소

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

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

`홀수 인덱스의 요소`

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

`홀수번째 요소`:

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

 

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

 

문제 풀면서 든 내 심정

복사했습니다!