JavaScript에서 배열 형태의 객체에 담긴 여러 고객 정보 중 홀수(odd) CustomerId를 가진 레코드만 골라내야 하는 경우가 있습니다. 이럴 때 for 루프와 나머지 연산자(%)를 조합하면 간단하게 해결할 수 있습니다.
예제 데이터 준비하기
먼저 다음과 같이 customerId와 customerName을 담은 객체 배열이 있다고 가정해 보겠습니다.
var customerDetails = [
{
customerId: 101,
customerName: "John"
},
{
customerId: 102,
customerName: "David"
},
{
customerId: 103,
customerName: "Mike"
},
{
customerId: 104,
customerName: "Bob"
}
];for 루프로 홀수 CustomerId 필터링하기
배열의 길이만큼 반복하는 for 루프 안에서, 각 요소의 customerId를 2로 나눈 나머지가 0이 아닌지 확인하면 됩니다. 나머지가 0이 아니라는 것은 그 값이 홀수라는 의미입니다.
for (var index = 0; index < customerDetails.length; index++) {
if (customerDetails[index].customerId % 2 != 0) {
// 홀수 CustomerId인 경우에만 실행되는 코드
}
}전체 예제 코드
조건문 안에서 해당 고객의 ID와 이름을 콘솔에 출력하는 전체 코드는 다음과 같습니다.
var customerDetails = [
{
customerId: 101,
customerName: "John"
},
{
customerId: 102,
customerName: "David"
},
{
customerId: 103,
customerName: "Mike"
},
{
customerId: 104,
customerName: "Bob"
}
];
for (var index = 0; index < customerDetails.length; index++) {
if (customerDetails[index].customerId % 2 != 0) {
console.log("Customer Id=" + customerDetails[index].customerId);
console.log("Customer Name=" + customerDetails[index].customerName);
console.log("-----------------------------------------------------------");
}
}프로그램 실행하기
Node.js 환경에서 위 프로그램을 실행하려면 터미널에서 다음 명령어를 입력합니다.
node fileName.js
여기서는 파일 이름이 demo71.js라고 가정합니다.
실행 결과
위 코드를 실행하면 홀수 CustomerId(101, 103)를 가진 고객 정보만 출력됩니다.
PS C:\Users\Amit\JavaScript-code> node demo71.js Customer Id=101 Customer Name=John ----------------------------------------------------------- Customer Id=103 Customer Name=Mike -----------------------------------------------------------
정리
핵심 원리는 customerId % 2 != 0이라는 조건입니다. 어떤 수를 2로 나눈 나머지가 1이면 홀수, 0이면 짝수입니다. 이 방식을 응용하면 짝수 ID만 추출하거나(% 2 == 0), 특정 범위의 값만 필터링하는 등 다양한 조건 처리에 활용할 수 있습니다. 또한 최신 JavaScript에서는 filter() 메서드를 사용해 customerDetails.filter(c => c.customerId % 2 !== 0)처럼 더 간결하게 작성할 수도 있습니다.