본문 바로가기
2. 우당탕탕 개발자/2-1. 공부기록

10Jan2020 TIL

by Little Monkey 2020. 1. 11.
반응형

라이브러리란?

사용이 잦은 로직을 재활용하기 위해 class 혹은 function 으로 정의한 것을 의미. 다른 사람들이 만든 라이브러리를 사용할 수 있고, 직접 만들 수도 있다. 

 

Underbar Review

_.map(collection, iterator)

_.map = function(collection, iterator) {
  let arr =[];
  for(let el of collection) {
    arr.push(iterator(el));
  }
  return arr;
}

 

_.reduce(collection, iterator, accumulator)

_.reduce = function(collection, iterator, accumulator) {
  if (Array.isArray(collection)) {
    accumulator === undefined
      ? (accumulator = collection[0])
      : (accumulator = iterator(accumulator, collection[0]));
    for (let i = 1; i < collection.length; i++) {
      accumulator = iterator(accumulator, collection[i]);
    }
    return accumulator;
  } else {
    for (let prop in collection) {
      accumulator = iterator(accumulator, collection[prop]);
    }
    return accumulator;
  }
};

겹치는 부분을 최소화 하기 위해서 accumulator가 없는 경우와 있는 경우를 한 번 가공해서 통일 시킨다.

 

_.once(func)

_.once = function(func) {
  var alreadyCalled = false;
  var result;
  return function(...args){
  if(!alreadyCalled){
    alreadyCalled = true;
    result = func(...args) // this가 없는 상황이라
   }
    return result;
  }
};
var num = 0;
var increment = _.once(function() {
 num++;
});

increment(); // num은 1
increment(); // num은 1
increment(); // num은 1

func을 실행해주기 위해서 return에 callback 함수를 넣어주는 것. 

반응형

'2. 우당탕탕 개발자 > 2-1. 공부기록' 카테고리의 다른 글

13Jan2020 TIL  (0) 2020.01.13
11Jan2020 TIL  (0) 2020.01.12
09Jan2020 TIL  (0) 2020.01.10
06Jan2020 TIL  (0) 2020.01.07
01Jan2020 TIL  (0) 2020.01.02

댓글