본문 바로가기

개발일지157

[12~14] query, queryToObject 1. queryquery1 예제(1) obj1 key 출력해보기 (2) obj1 key와 value 출력해보기 (3) res 생성하여 값들을 누적해보기 이전 코드가 꽤 복잡하기 때문에 reduce로 처리해보기query2 예제(1) 우선, (Object.entries(obj) 이용하기 (2) reduce 적용 (3) 구조 분해 해보기 (kv -> [k, v]) + 조건문 추가위 코드는 상당히 복잡함 템플릿화해서 간결해 보이게 표현하기위와 결과 같음. 위 코드도 복잡하기 때문에 더 나은 방법은?query3 예제즉시 평가 필터(_.filter) 사용 + 구조 분해 undefined 추가, 좀 더 보기 좋게 변경, _.reject 함수명 변경 _.map 적용하기위 코드들이 같은 '형'으로 되어 있기 때문에 re.. 2024. 11. 30.
[10~11] reduce를 사용해 코드 간단하게 만드는 방법 1. reduce + 복잡한 함수 + acc 보다,  map + 간단한 함수 + reduce 만들기아래 코드는 복잡하다.위 코드가 복잡하고 하는 이유는이 reduce에서 이 users가 어떻게 생겼는지 분석하기 위해서 이 보조 함수를 만들고 있다. 그리고 시작 값을 통해서 합산하고 있다. 더 좋은 reduce는 시작 값(=0)이 없는 reduce가 더 간단한 연산을 한다.이게 무슨 말이냐면,  아래 사진처럼 a와 b 부분이 모두 숫자인 경우에는 더 심플하게 사용할 수 있다.하나의 함수에서 복잡하게 처리하는 것보다 a와 b를 같은 형태를 오게 한다면 복잡한 코드가 나오지 않게 된다. 아래 코드를 보면, _.reduce((a,b) => a+b, L.map(u => u.age, users)));형태를 사용해 .. 2024. 11. 30.
FxJS 라이브러리 윈도우에서 사용하기 https://github.com/marpple/FxJS/blob/master/README_kr.md FxJS/README_kr.md at master · marpple/FxJSFunctional Extensions Library for JavaScript. Contribute to marpple/FxJS development by creating an account on GitHub.github.comFxJS는 ECMAScript 6 언어의 Iterable / Iterator, Generator, Promise를 기반으로 작성된 함수형 자바스크립트 라이브러리이다. 브라우저 환경일 때 헤더에 추가 script에 추가const { L, C } = window._; 브라우저에서 fx.js 스크립트 파일이 로.. 2024. 11. 30.
[8~9] 추억의 별 그리기, 구구단 1. 추억의 별 그리기단계 1 : L.range(5)로 출력해보기_.go( L.range(5), console.log );이렇게 코드를 세우면, console창에 아래와 같이 나타나게 됨-> 소통이 어려움이 발생 단계 2 : 즉시 평가되면 range로 변경_.go( _.range(5), console.log );range는 먼가 여러번의 일을 반복하려고 할 때 그것을 시작하려면 사용함별을 0개부터가 아닌 1개부터 그리는게 좋기 때문에 코드 수정 단계 3 : _.map추가 및 range 1부터 시작_.go( _.range(1, 6), _.map(_.range), console.log );console에 얼추 별 형태와 비슷하게 나타남 단계 4 : reduce를 사용해서 a와 b사이에 아무것.. 2024. 11. 30.
[6~7] while을 range로, 효과를 each로 구분 (+ go함수) 1. while을 range로 (1) L.range란 무엇인가?L.range는 지연 평가를 활용해 특정 범위의 숫자를 생성하는 함수입니다. 이를 통해 숫자 시퀀스를 동적으로 생성하고, 메모리를 효율적으로 사용합니다. (2) L.range의 특징start와 end 값을 사용해 숫자 시퀀스를 생성합니다.step 값이 있을 경우, 지정된 간격으로 숫자를 생성합니다.지연 평가를 지원하여 실제로 순회하기 전까지 값이 생성되지 않습니다. L.range의 일반적인 형태L.range(start, end, step);start: 시퀀스 시작 값 (기본값: 0).end: 시퀀스 종료 값.step: 시퀀스 증가값 (기본값: 1). 예제 6 while 코드//6. While을 range로 function f3(e.. 2024. 11. 30.
L객체와 C객체, 지연평가(Lazy Evaluation)와 즉시평가(Eager Evaluation) L객체와 C객체 지연평가(Lazy Evaluation), 즉시평가(Eager Evaluation) 1.  L객체과 C객체L 객체:L은 Lazy (지연 평가)를 지원하는 함수 모음여기서 제공되는 함수(deepFlat, deepFlatten, entries, 등)는 데이터를 처리할 때 메모리를 효율적으로 사용하며, 필요할 때만 값을 계산하는 방식으로 작동한다.지연 평가는 큰 데이터셋이나 무한 이터러블을 처리할 때 유용하다.C 객체:C는 병렬적 실행(Concurrency)을 지원하는 함수 모음reduce, take, mapEntries 등의 함수가 포함되어 있으며, 데이터 처리를 병렬적으로 실행하여 속도를 향상시킬 수 있다.특히, 비동기 처리를 다룰 때 유용하다. 2. 지연평가(Lazy Evaluation),.. 2024. 11. 30.