map, filter

ksung1889·2021년 3월 24일
0

중복을 제거하고 함수형 프로그래밍을 알아보자

const words = ['aaaa','bbb','cc','d'];
const result = words.filter(function(word){
  return word.length >= 2
});
// 위아래 같은 문장
const result = words.filter( word => word.length>=2);

> [1,2,3,4].filter(function(num) { return num%2 ;}); // 참값 리턴

> _filter([1,2,3,4], function(num) { return num%2 ; });

var users = [
{id : 1, name : "ID", age : 36},
{id : 2, name : "BJ", age : 32},
{id : 3, name : "JM", age : 32},
{id : 4, name : "PJ", age : 27},
{id : 5, name : "HA", age : 25},
{id : 6, name : "JE", age : 26},
{id : 7, name : "JI", age : 31},
{id : 8, name : "MP", age : 23},
]

/// if문 안에 그대로 조건을 써준 case
var temp_users = [];
  for(var i =0 ; i < users.length ; i++){
    if(users[i].age >= 30){
      temp_users.push(users[i]);
    }
  }
console.log(temp_users);



```javascript
// if문 바깥으로 조건을 위임한 case
function _filter(list, predi) { // predi라는 함수에게 조건을 위임함
var new_list = [];
//★★★★★★ 원래 있는 값을 변경하지 않고 변형된 새로운 값을 리턴하는 식으로 값을 변형해 나간다.
for(var i =0 ; i < users.length ; i++){
    if(predi(list[i]){ // 배열의 요소 하나씩 넘기면서 실행함
      new_list.push(users[i]);
    }
  }
return new_list;
}
_filter(users, function(user) { return user.age >=30 } );

if문 안의 조건을 filter를 이용하여 predi라는 함수로 위임

_map(_filter(users, function(user) { return user.age >=30 } ), function(user) { return user.name } );
// map 안으로 filter를 써준 case

배열내장함수

  • filter : 특정 조건을 만족하는 원소들을 찾아서 새로운 배열을 만들어주는 함수입니다
  • map : 배열 안의 원소를 다른 값으로 변환할 때 사용합니다.

고차함수(응용함수) -> 함수가 함수를 받아서 원하는 시점에 해당하는 함수가 알고있는 인자를 적용하는 식으로 프로그래밍함.
함수를 리턴 또는 함수안에서 함수를 인자로 받아서 실행

profile
Front-Dev

0개의 댓글