JavaScript | FP && ES6+ | L.flatten, L.flatMap, flatMap, 지연성/이터러블 실무 예제
L.flatten L.flatten 함수는 [..[1, 2], 3, 4, ...[7, 8, 9]] 같은 배열이 있을 때 [1, 2, 3, ... 7, 8, 9]와 같이 하나의 배열로 만드는 함수다. const isIterable = a => a && a[Symbol.iterator]; L.flatten = function* (iter) { for (const a of iter) { if (isIterable(a)) for (const b of a) yield b else yield a; } }; let it = L.flatten([[1, 2], 3, 4, [5, 6], [7, 8, 9]]); console.log(it.next()); console.log(it.next()); console.log(it...
2022. 2. 16.
JavaScript | FP && ES6+ | map, filter, reduce
map 함수형 프로그래밍은 인자와 인자 값으로 소통한다. map은 결과를 리턴해서 리턴된 값을 개발자가 이후에 변화를 일으키는 데 사용하는 함수이며, 고차 함수(함수를 값으로 다루는 함수)이다. 아래와 같은 객체가 있다고 치자. const products = [ {name: '반팔티', price: 15000}, {name: '긴팔티', price: 20000}, {name: '핸드폰케이스', price: 15000}, {name: '후드티', price: 30000}, {name: '바지', price: 25000} ]; 위의 객체에서 name의 값들을 반환하고 싶다면 어떻게 해야 할까? let names = []; for (let a of products) { names.push(a.name); } ..
2022. 1. 25.