[ES6+: 응용] reduce함수를 통해보는 명령형 습관을 지우기
#1 reduce함수는 만능이 아니다 "reduce" 한개를 쓰는 것 보다 "map + filter + reduce" 를 함께 쓰자 기존 명령형 습관들 때문에, reduce를 오용하는 경우가 자주 있다. const users = [ { name: 'AA', age: 35}, { name: 'BB', age: 26}, { name: 'CC', age: 28}, { name: 'DD', age: 34}, { name: 'EE', age: 23}, ] 위와 같은 users 데이터가 있다. 이를 합산하는 코드를 reduce통해 짜볼 것이다. console.log(_.reduce((total, u) => total + u.age, 0, users)); // 146 위를 보면 total과 u.age라는 서로 다른 ..
더보기
[JS: ES6+] 장바구니 예제로 코드를 줄이고 HTML로 표현해보기
#1 go, pipe, curry를 활용한 코드 줄이기 실습 장바구니 예제 실습 앞에서 배웠던 [go, pipe, curry: https://opentogether.tistory.com/70?category=807380]를 기반으로 코드를 줄여보는 것을 한번 더 해볼것이다. /*외부 파일: fx.js*/ const go = (...args) => args.reduce((a, f) => { return f(a); }); const pipe = (...funcs) => arg => funcs.reduce((a, f) => f(a), arg); const curry = f => (a, ..._) => _.length ? f(a, ..._) : (..._) => f(a, ..._); const map = cur..
더보기
[JS: ES6+] 이터러블 프로토콜을 따른 map, filter, reduce
#1 map 이터러블 프로토콜을 따른 map 간단하게 먼저, map 함수는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다. var array1 = [1, 4, 9, 16]; // pass a function to map const map1 = array1.map(x => x * 2); console.log(map1); // expected output: Array [2, 8, 18, 32] 이제, 이터러블 프로토콜을 따른 map함수를 알아볼건데요, 먼저 map을 사용하지 않은 예제를 봅시다. const products = [ { name: '반팔티', price: 15000 }, { name: '긴팔티', price: 20000 }, { name: '후드티..
더보기