[javascript] 배열 순회 시 특정 요소 개수 세기

배열에서 특정 요소의 개수를 세는 방법은 많습니다. 이번 포스트에서는 JavaScript를 사용하여 배열을 순회하고 특정 요소의 개수를 세는 방법을 알아보겠습니다.

1. for문을 이용한 방법

const arr = [1, 2, 3, 4, 4, 5, 4];
const target = 4;
let count = 0;

for (let i = 0; i < arr.length; i++) {
  if (arr[i] === target) {
    count++;
  }
}

console.log(count); // 결과: 3

위의 코드에서는 for문을 이용하여 배열을 순회하고, 현재 요소가 target과 동일한지 비교하여 개수를 증가시킵니다. 마지막으로 count 변수를 출력하여 결과를 확인할 수 있습니다.

2. filter 메서드를 이용한 방법

const arr = [1, 2, 3, 4, 4, 5, 4];
const target = 4;

const filteredArr = arr.filter(item => item === target);
const count = filteredArr.length;

console.log(count); // 결과: 3

위의 코드에서는 filter 메서드를 이용하여 배열에서 target과 동일한 요소만 걸러낸 후, 그 개수를 count 변수에 저장하고 출력합니다.

3. reduce 메서드를 이용한 방법

const arr = [1, 2, 3, 4, 4, 5, 4];
const target = 4;

const count = arr.reduce((accumulator, currentValue) => {
  if (currentValue === target) {
    return accumulator + 1;
  }
  return accumulator;
}, 0);

console.log(count); // 결과: 3

위의 코드에서는 reduce 메서드를 이용하여 배열을 순회하고 target과 동일한 요소를 만날 때마다 accumulator 변수를 1씩 증가시킵니다. 초기값으로 0을 설정하여 초기 상태를 지정합니다.

각각의 방법은 목적에 따라 사용할 수 있습니다. for문은 가장 기본적인 방법이며, filter와 reduce 메서드는 배열의 특정 요소를 걸러내는 데에 더 적합한 방법입니다.

다른 문제에서도 유용하게 활용할 수 있는 방법들이니, 필요에 따라 적절하게 선택하여 사용하시기 바랍니다.

참고 자료: