Take 함수 const take = (l, iter) => { let res = []; for (const a of iter) { res.push(a); if (res.length === l) return res; } return res; }; take 함수는 limit과 iterable 객체를 받아서 limit 개수 만큼 값을 저장하는 함수다. 그래서 range와 함께 5개의 원소만 뽑아내고자 한다면 다음과 같이 작성할 수 있다. const range = l => { let i = -1; let res = []; while (++i < l) { res.push(i); } return res; }; const L = {}; L.range = function *(l) { let i = -1; while ..
인프런X디프만
range, L.range 테스트 const range = l => { let i = -1; const res = []; while (++i { console.time(name); while (time--) f(); console.timeEnd(name); }; test('range', 10, () => reduce(add, range(10000..
const product = [ { name: '반팔티', price: 15000, quantity: 1 }, { name: '긴팔티', price: 20000, quantity: 2 }, { name: '핸드폰케이스', price; 15000, quantity: 3 }, { name: '후드티', price: 30000, quantity: 4 }, { name: '바지', price: 25000, quantity: 5 }, ]; const go = (...args) => reduce((a, f) => f(a), args); 여기서 수량을 모두 합하고자 할 때, go를 통해 연속적으로 함수를 실행할 수 있다. go( products, map(p => p.quantity), console.log ); 위의..
https://dev-scratch.tistory.com/151 [JavaScript] go, pipe로 읽기 좋은 코드 만들기 기존 함수의 문제 https://dev-scratch.tistory.com/150 [JavaScript] Map + Filter + Reduce 중첩 사용과 함수형 사고 Map, Filter, Reduce 중첩하여 사용 map, filter, reduce 함수를 커스텀으로 생성하고, 이를 중첩하여 사용 dev-scratch.tistory.com 이제 위 게시물의 가장 상단 복잡했던 코드들을 아래와 같이 작성할 수 있다. 먼저 원본 코드는 아래와 같다. const filter = (f, iter) => { const res = []; for (const a of iter) { i..