each

devjune·2021년 9월 26일
0

ES5

목록 보기
3/14

_filter, _map 함수에서도 for, list[i]부분이 중복된 걸 확인할 수 있다.

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

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

_each함수를 만들어 중복을 제거해 보자.

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

//_each 함수는 list와 실행할 함수를 인자로 받고 반복하며 인자로 받은 함수를 실행하는 함수이다.

function _map(list, mapper) {
  var new_list = [];
  _each(list, function(val) {
    new_list.push(mapper(val));
  });
  return new_list;
}

function _filter(list, predi) {
  var new_list = [];
  _each(list, function(val) {
    if (predi(val)) {
      new_list.push(val);
    }
  });
  return new_list;
}
profile
개발자준

0개의 댓글