고차함수 filter 쉽게 이해하기

1615 단어 30기30기

배열 메소드 filter

filter에대해서 알아보자

filter는 모든 요소 중 내가 원하는 값만 필터링하여 반환한다.

array [1, 2, 3]
odd number is odd?

return array [1, 3]
  • 행동은 내가 직접 작성해야한다.
  • 함수로 작성하여 인자로 넣는다
  • 기존배열을 수정하지 않는다
  • 원하는 필터링에 따라서 결과가 달라진다.

코드로 표현하자면 다음과 같다.

let arr = [1, 2, 3];

let result = 
arr.filter(function(ele) {
	return ele % 2 !== 0
});

result;

[1, 3]

실제 filter 활용예시

꼭 기억 할 것!

  • 배열의 각 요소가
  • 특정 논리(함수)에 따르면 , 사실(boolean)일 때
  • 따로 분류한다. (filter).

문제

만화책 식객 27권의 정보가 배열에 담겨 있다.출판년도가 2003년인 단행본만 담은 배열을 만들어라.

수도코드

  • 배열의 각 요소 : 각 식객 1~27권의 정보
  • 특정논리(함수) : 책의 출판년도가 2003년입니다.(true/false)
  • 따로분류 : 출판년도가 2003년인 책의 정보

실제코드

filter는 이렇게 조건에 맞는 데이터만 분류(filtering)할 때 사용한다.

const cartoon = {
 {
   id: 1,
   bookType: 'cartoon',
   title: '식객',
   subtitle: '어머니의 쌀',
   createdAt: '2003-09-09',
   genre: '요리',
   artist: '허영만',
   averageScore: 9.66,
 },
 { 
   id: 2,
   // ..이하 생략
 },
 //이하 생략
]; // 단행본의 모음

const isCreatedAt2003 = function (cartoon) {
	const fullYear = new Date(cartoon.createdAt).getFullYear()
    	return fullYear === 2003;
}; // 단행본 한 권의 출판년도가 2003인지 확인하는 함수

const filteredCartoons = cartoons.filter(isCreatedAt2003); 
// 출판년도가 2003년인 책의 모음

좋은 웹페이지 즐겨찾기