TIL 11 (filter() 복습)

biblee·2023년 2월 22일

TIL

목록 보기
13/28

filter()

filter () 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다

쉽게 말해서 주어진 조건에 맞는 배열의값들만 모아서 새로운 배열을 만들어 반환해주는 것이다.

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);

위 코드가 뜻하는 것은 words 배열을 기준으로 words 배열 안의 word(글자수) 가 6글자 초과되는 글자들만 모아 새로운 배열을 만드는 것이다

filter를 적용시키면

["exuberant", "destruction", "present"]

이 3개의 값들만 모아서 배열을 만들어준다
위 3개의 값들은 words.filter(word => word.length > 6) 조건이 충족된 값들이다

filter는 주어진 값을 조건에 걸어 테스트 후에 테스트에 통과된 값을 받아낼때 주로 사용하게 되는데 이와 비슷한 for문,if문이 있다

const userList = [
  { ID: "1", Number: 1, address: "Seoul", score: 90 },
  { ID: "2", Number: 2, address: "Seoul", score: 80 },
  { ID: "3", Number: 3, address: "Seoul", score: 70 },
];

let Best = [];

for (let i = 0; i < userList.length; i++) {
  if (userList[i].score > 80) {
    Best = userList[i];
  }
}

위 코드를 console로 확인해보면 아래와 같이 출력된다.

하지만 for문과 if문을 사용하지않고 filter()를 사용하면 긴 코드를 쓰지않고 똑같은결과를 받아 볼 수 있다.

let BestPeople = userList.filter((sc) => sc.score > 80);

console.log(BestPeople);

위 코드도 console로 확인하면 fop문과 if문을 사용했을때와 같이 똑같은 값을 얻어낼 수 있다.

filter를 이런 목적으로 사용해도 되는지 모르겠지만 이해하기 편하게 공부하다보니 for문과if문을 비교하게 되었다.

0개의 댓글