[TIL] underscore.js(1)
underscore.js란 무엇인가?
underscore.js는 기본 JavaScript 객체들을 확장하지 않고, 함수형 프로그래밍을 지원할 수 있는 100가지 이상의 함수를 가진 유용한 JavaScript 라이브러리다.
underscore.js에서 함수들을 그룹별로 정리하면 아래와 같다.
utilities: 유틸리티 함수
collection: 배열 또는 객체가 될 수 있다.
arrays: 배열을 다루는 함수
objects: 객체를 다루는 함수
functions: 함수를 다루는 함수
오늘 문제를 풀면서 어려웠거나 자주 쓰일 것 같다고 생각한 것들
_.each
_.each(list, iteratee)
list: colletion으로써, 배열이나 객체가 될 수 있다.
iteratee: list의 각 element(value)를 반복적으로 돌리는 함수이다.
함수구현
_.each = function (collection, iteratee) {
let keys = Object.keys(collection)
if(Array.isArray(collection)) {
for(let i = 0; i < collection.length; i++) {
iteratee(collection[i], i, collection)
}
} else if(typeof(collection) === 'object') {
for(let i = 0; i < keys.length; i++) {
iteratee(collection[keys[i]], keys[i], collection)
}
}
};
_.filter
filter _.filter(list, predicate)
list: colletion으로써, 배열이나 객체가 될 수 있다.
predicate: list의 각 element(value)의 결과값이 truth인지 확인하는 test 함수이다.
--> list의 각 element(value)를 predicate 함수를 돌려, 값이 truth인 것만 배열의 element로 리턴한다.
함수 구현
_.filter = function (arr, test) {
let result = [];
_.each(arr, function(i) {
if(test(i)) {
result.push(i)
}
})
return result;
};
_.reduce
reduce _.reduce(list, iteratee, acc)
list: colletion으로써, 배열이나 객체가 될 수 있다.
iteratee: list의 각 element(value)를 반복적으로 돌리는 함수이다.
acc: iteratee 함수의 인자로 사용될 초기 값을 말한다.(생략가능)
--> list의 각 element(value)를 iteratee 함수를 돌려, 하나의 값으로 리턴한다.
함수 구현
_.reduce = function (arr, iteratee, initVal) {
let acc = initVal;
_.each(arr, function(el, index, arr) {
if(acc === undefined) {
acc = arr[0];
} else {
acc = iteratee(acc, el, index, arr)
}
})
return acc;
};
Author And Source
이 문제에 관하여([TIL] underscore.js(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@blackdavil01/TIL-underscore.js1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)