본문 바로가기

웹 개발/javascript13

filter, map을 이용한 코드를 reduce로 refactoring하기 다음과 같은 문제가 주어졌다고 생각해 보자. let arr = [1,2,3,4,5]; function filter() { const filterMapped = arr.filter(x => x % 2 !== 0).map(x => x*2); return filterMapped; } filter();// [2, 6, 10] filter함수는 filter와 map을 사용해서 주어진 arr에 홀수 중인 것에 2를 곱한 값을 리턴한다. 이것을 구현하기 전에 먼저 arrow function(화살표 함수)가 익숙하지 않아서 mdn 등 문서를 통해 화살표 함수의 기능을 익히는 시간을 가졌다. 화살표 함수는 익명 함수로 function 표현을 사용하지 않으니 구문이 짧아져 많이 편했다. 계속 화살표 함수를 사용해 봐야 겠.. 2021. 2. 22.
underbar shuffle 메소드 shuffle을 사전에 찾아보니 다음과 같이 정의하고 있다. rearrange (a deck of cards) by sliding the cards over each other quickly. 즉 카드를 다른 카드 위에 섞으면서 재정렬하는 것이다. _shuffle 은 배열 요소의 순서가 랜덤하게 변경된 새로운 배열을 리턴한다. 예를 들면 음악이나 비디오를 재생할 때 랜덤으로 재생할 때 사용할 수 있다. 본격적인 shuffle 메소드 코드를 작성하기 전에 먼저 정리할 것이 있다. Math. random() Math.random() 함수는 0 ~ 1 사이 부동수숫점 의사난수를 반환한다. 즉 0에서 0.9999...까지 랜덤한 수를 생성한다. 정수인 난수를 생성하고 싶다면 수를 내림하는 Math.floor의 .. 2021. 2. 22.
재귀함수를 통해 Tower of Hanoi (하노이의 탑)문제 해결해보자 재귀함수를 연습할 수 있는 좋은 예가 바로 하노이의 탑(Tower of Hanoi)문제이다. 하노이의 탑이란 전세계에서 인기 있는 수학 게임이다. source, extra, destination의 3개의 Peg가 있다. source에 각각 크기가 다른 n개의 디스크가 있어 이 3개의 peg중 어느 하나에나 삽입할 수 있다. 우리가 해야 할 일은 바로 source의 모든 peg를 destination으로 옮기는 것이다. 제한 사항은 첫째. 한 번에 하나의 디스크만 이동할 수 있다. 둘째. 더 큰 디스크를 작은 디스크 위에 올릴 수 없다. 해답을 말씀드리기 전에 먼저 아래는 연습할 수 있는 사이트에서 한번 시도해 보시기 바랍니다. 만만치 않을 것입니다. www.transum.org/Maths/Investig.. 2021. 2. 11.