Front/javascript

자바스크립트 filter 메서드

해니01_15 2024. 6. 18. 16:26

[역할]

filter 메서드는 JavaScript의 배열 메서드 중 하나로, 주어진 조건에 따라 배열의 요소들을 필터링하여 새로운 배열을 반환한다. 이 메서드는 원본 배열을 변경하지 않고, 조건에 맞는 요소들로 이루어진 새로운 배열을 생성하는 특징이 있다.

 

[구조] 

let newArray = array.filter(callback(element[, index[, array]])[, thisArg]);

 

매개변수

  • callback(element[, index[, array]]): 배열의 각 요소에 대해 호출되는 함수.
  • element: 현재 처리 중인 요소.
  • index (선택적): 현재 처리 중인 요소의 인덱스.
  • array (선택적): filter 메서드가 호출된 배열 자체.
  • thisArg (선택적): callback 함수 내부에서 this로 사용할 값.

 

반환 값

filter 메서드는 조건을 만족하는 요소들로만 구성된 새로운 배열(newArray)을 반환한다.



콜백 함수의 반환 값

callback 함수는 true (새로운 배열에 포함) 또는 false(새로운 배열에 포함X) 를 반환해야 한다.

 

 

[예시1]

const numbers = [1, 2, 3, 4, 5, 6];

const evenNumbers = numbers.filter(number => number % 2 === 0);

console.log(evenNumbers); // [2, 4, 6]

 

[예시2]

const ui = {
  rpData: {
    OutRec1: {
      RCRD_C: 5 // 예제 데이터
    },
    OutRec2: [
      { HNGL_ISNM: "John" },
      { HNGL_ISNM: null },
      { HNGL_ISNM: "Doe" },
      { HNGL_ISNM: null },
      { HNGL_ISNM: "Smith" }
    ]
  }
};

// HNGL_ISNM이 null이 아닌 항목만 필터링하여 새로운 배열 생성
const filteredOutRec2 = ui.rpData.OutRec2.filter(item => item.HNGL_ISNM !== null);

// 필터링된 배열 확인
console.log(filteredOutRec2);

//배열을 돌면서 필터링 된 항목  출력 
filteredOutRec2.forEach(item => {
  console.log(item.HNGL_ISNM); 
});