Filter

이용원·2022년 11월 14일
0

JAVASCRIPT

목록 보기
19/34

Filter

조건에 맞는 값을 찾아서 새로운 배열에 담아준다.

const number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];

//콜백함수의 return값이 true인 경우에만 그 값을 모아서 새로운 배열로 만듦
const isEven = number.filter( item => item%2===0);

console.log(isEven) // [2, 4, 6, 8, 10, 12, 14];


//점수에 맞는 영화를 뽑아옴
const movie = [
  {
    name: "heh1",
    rating: 96,
  },
  {
    name: "heh2",
    rating: 90,
  },
  {
    name: "heh3",
    rating: 70,
  },
  {
    name: "heh4",
    rating: 100,
  },

  {
    name: "heh5",
    rating: 70,
  },

  {
    name: "heh6",
    rating: 60,
  },
];

let higherRating = movie.filter(obj=>obj.rating>70);
console.log(higherRating)
/*
[
  { name: "heh1", rating: 96 },
  { name: "heh2", rating: 90 },
  { name: "heh4", rating: 100 },
];
*/


//map과 filter의 결합
// 90점이 넘는 영화의 제목을 가지고 오려면 filter를 해준 뒤에 map을 해준다.

let higherRatingMovieName = higherRating.map(item=>item.name);
console.log(higherRatingMovieName);

//이렇게 한줄로도 가능
let higherRating2 = movie.filter((obj) => obj.rating>90).map(item=>item.name);
console.log(higherRating2)



let UserNames = ['hello', 'hellooo', 'helllllooooo', 'hellllo'];
/**
 * 
    arrow function으로 validUserNames 함수는
    arr를 parameter로 저장하고 그 전달받은 parameter값의 filter를 해서
    item의 길이가 10보다 작은 값만 반환해서 배열을 만들어주는 함수.
 */
let validUserNames = arr => arr.filter(item => item.length<10);

let lessThanTen = validUserNames(UserNames)

console.log(lessThanTen) //[ 'hello', 'hellooo', 'hellllo' ]

0개의 댓글

관련 채용 정보