정답 코드
// 홀수번째만 출력하기
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부터 세기 때문에 혼동이 온 것 같다.
'TIL > JavaScript' 카테고리의 다른 글
[TIL/JS] Number 보다 parseInt()를 더 권고하는 이유 (0) | 2024.09.06 |
---|---|
[TIL/JavaScript] 갤러리 만들기 (0) | 2024.07.03 |
[TIL/JavaScript] 후위 연산자와 리팩토링 (0) | 2024.07.03 |
[TIL/JavaScript] 파라미터 이름과 클래스 필드의 이름 일치, this 키워드, constructor() (0) | 2024.07.02 |
[TIL/JavaScript] script 태그, 이벤트, 문자열과 숫자 (0) | 2023.11.20 |