기존 함수의 문제 https://dev-scratch.tistory.com/150 [JavaScript] Map + Filter + Reduce 중첩 사용과 함수형 사고 Map, Filter, Reduce 중첩하여 사용 map, filter, reduce 함수를 커스텀으로 생성하고, 이를 중첩하여 사용해봄으로써 함수형 사고에 대해 배우고자 한다. 각각의 함수는 아래와 같이 작성할 수 있다. const m dev-scratch.tistory.com 앞선 게시물에서 여러 개의 함수를 중첩하여 사용하다보니까 코드는 간결하지만 가독성이 그리 좋지 않았다. 그렇기에 이를 보완할 필요가 있어 보인다. const filter = (f, iter) => { const res = []; for (const a of it..
함수형 프로그래밍
Map, Filter, Reduce 중첩하여 사용 map, filter, reduce 함수를 커스텀으로 생성하고, 이를 중첩하여 사용해봄으로써 함수형 사고에 대해 배우고자 한다. 각각의 함수는 아래와 같이 작성할 수 있다. const map = (f, iter) => { const res = []; for (const a of iter) { res.push(f(a)) } return res; }; const filter = (f, iter) => { const res = []; for (const a of iter) { if (f(a)) res.push(a); } return res; }; const reduce = (f, acc, iter) => { if (!iter) { iter = acc[Symbo..
앞선 이터러블 프로토콜과 map을 공부하면서 사용자 정의로 이터러블한 객체를 순회하면서 값을 매핑했다. const map = (f, iter) => { const res = []; for (const p of iter) { res.push(f(p)); } return res; }; let m = new Map(); m.set('a', 10); m.set('b', 20); const it = m[Symbol.iterator](); it.next(); it.next(); it.next(); map(([k, a]) => [k, a * 2], m); 이터러블을 따르는 객체는 임의로 만든 map 함수에 잘 작용하는 이터러블 객체이다. filter 함수 const products = [ { name: '허니버터칩'..
기존의 이터러블 객체 순회 기존의 이터러블 객체(순환이 가능한 객체)는 for i++과 같은 형태로 이터러블 객체를 순환하였다. const students = ['동규', '소현', '찬진', '요셉']; for (let i = 0; i < students.length; i++) { console.log(students[i] + '님은 제 친구입니다.'); } 위와 같이 전체 이터러블 객체를 순환하도록 하였다. 이뿐만 아니라 문자열도 이터러블한 자료형이기 때문에 위와 같이 할 수 있다. const alphabet = 'abcdef' for (let i = 0; i < alphabet.length; i++) { console.log(alphabet[i]); } 즉, 숫자를 키로 하여 이터러블한 객체를 순회..