특수 배열이란?
특정 배열이 '특수 배열(Special Array)'에 해당하려면 다음 두 조건을 만족해야 합니다.
- 홀수 인덱스(1, 3, 5, ...)에 위치한 모든 요소는 홀수여야 합니다.
- 짝수 인덱스(0, 2, 4, ...)에 위치한 모든 요소는 짝수여야 합니다.
즉, 각 요소의 값과 해당 인덱스의 홀짝 성질이 일치해야 한다는 뜻입니다. 이번 글에서는 배열을 인자로 받아 해당 배열이 특수 배열인지 여부를 확인하는 JavaScript 함수를 작성해 보겠습니다.
구현 예제
다음은 위 조건을 검사하는 코드입니다.
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const isSpecial = (arr = []) => {
for(let i = 0; i < arr.length; i++){
if(arr[i] % 2 === i % 2){
continue;
};
return false;
};
return true;
};
console.log(isSpecial(arr));
코드 설명
핵심 로직은 매우 간단합니다. 배열을 순회하면서 각 요소의 값과 인덱스를 2로 나눈 나머지를 비교합니다.
- arr[i] % 2 === i % 2: 요소의 홀짝 여부와 인덱스의 홀짝 여부가 같은지 확인합니다. 예를 들어 인덱스 0의 요소는 짝수(나머지 0), 인덱스 1의 요소는 홀수(나머지 1)여야 합니다.
- 조건을 만족하면 continue로 다음 요소를 검사하고, 하나라도 불일치하는 경우 즉시 false를 반환하여 불필요한 반복을 줄입니다.
- 모든 요소가 조건을 통과하면 최종적으로 true를 반환합니다.
출력 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
true
예제 배열 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]는 모든 짝수 인덱스에 짝수가, 홀수 인덱스에 홀수가 배치되어 있으므로 특수 배열에 해당합니다.