_filter, _map, _each

이재진·2020년 7월 27일
0

_filter 거르기

필터 같은 함수를 응용형 함수(응용형프로그램, 적용형프로그램), 함수가 함수를 받아서 원하는 시점에 해당하는 함수가 알고 있는 특정한 인자를 적용하는 식으로 프로그램 하는 것.
고차함수라고도 함. (함수를 인자로 받거나 함수를 리턴하거나 함수안에서 인자로 받은 함수를 실행하는 함수)

function _filter(list, predi) {
  var new_list = [];
  for (var i = 0; i < list.length; i++) {//list의크기만큼루프를돈다.
    if (predi(list[i])) {//해당번째list를받아둔predi함수에게연속적으로적용
      new_list.push(list[i]);
    }
  }
  return new_list;
}

ex) _filter(users, function(user) { return user.age >= 30; }));
_filter([1,2,3,4], function(user) { return num % 2; }));

_map 수집하기

function _filter(list, mapper) {
 var new_list = [];
 for (var i = 0; i < list.length; i++) {
     new_list.push(mapper(list[i]));
 }
 return new_list;
}

_each 만들기

for문을 돌면서 안에서 하는 행위를 위임하는 함수

function _each(list, iter) {
  for (var i = 0; i < list.length; i++) {
     iter(list[i]);
  }
  return list;

_each를 이용해서 다시 _map 만들기

_.map = function (list, mapper) {
    var new_list = [];
    
    /*for (let i = 0; i < list.length; i++) {
      new_list.push(mapper(list[i]));
    }*/
    _.each(list, function (val) {
      new_list.push(mapper(val));
    });
    return new_list;
  };

_each를 이용해서 다시 _filter 만들기


_.filter = function (list, predi) {
    let new_list = [];
    //for (var i = 0; i < list.length; i++) {
    //if (predi(list[i])) {
    //    new_list.push(list[i]));
      //}

    _.each(list, function (val) {
      if (predi(val)) {
        new_list.push(val);
      }
    });
    return new_list;
  };
profile
개발블로그

0개의 댓글