본문 바로가기
개발일지/JavaScript ES6

[8~9] 추억의 별 그리기, 구구단

by 꾸주니=^= 2024. 11. 30.

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사이에 아무것도 없이 더하고, 다시 reduce를 해서 나타내기
_.go(
	_.range(1, 6),
	_.map(_.range),
	_.map(_.map(_ => '*')),
	_.map(_.reduce((a, b) => `${a}${b}`)),
	_.reduce((a, b) => `${a}\n${b}`),
	console.log
    );

 

단계 5: L.range, L.map으로 바꿔서 지연적으로 생성하게 만들어서 배열을 효율적으로 생성을 덜 하게 함
_.go(
	L.range(1, 6),
	L.map(L.range),
	L.map(L.map(_ => '*')),
	L.map(_.reduce((a, b) => `${a}${b}`)),
	_.reduce((a, b) => `${a}\n${b}`),
	console.log
    );

위와 결과 동일

 


2.  추억의 구구단

 

추억의 구구단 코드

 

지연적으로 동작하게 코드 변경