JavaScript
-
Array.prototype.flat()JavaScript/JavaScript 2019. 9. 11. 11:42
이번엔 배열을 평평하게(???) 만들어주는 flat() 함수를 알아보자. 말했듯 flat()은 뎁스가 깊은 요소의 배열을 평평하게 만들어 새로운 배열을 반환한다. 3 뎁스의 배열이 있다고 가정해보고 이를 flat()함수를 사용하여 평평하게 만들어보자. 배열의 뎁스가 3인 배열을 flat()을 사용할 경우 1뎁스까지 평평하게 만들어버린다. array 배열의 2와 5가 1뎁스에 해당하는데, flat()을 사용하니 배열이 벗겨졌다. 이 말은 flat()의 디폴트는 1뎁스까지 벗기도록 되어있다는 것이다. 그럼 나머지 2, 3뎁스의 배열들은 억덕계 평평하게 만들 수 있을까? flat()함수는 기본적으로 인자를 받는다. 인자로 받는 값은 정수이며, 벗기고 싶은 뎁스만큼을 입력하면 입력한 만큼의 뎁스를 벗겨준다.
-
Array.prototype.flatMap()JavaScript/JavaScript 2019. 9. 10. 18:54
flatMap()에 대해서 알아보자. 얘를 설명하고 있는 MDN을 보면 '먼저 매핑함수를 사용해서 각 요소에 map을 수행한 후, 결과를 새로운 배열로 평평화한다.' 평평화가 뭔 말이냐... 그래서 직접 써봤다. 위의 결과는 map()을 사용했을 때와 결과가 똑같다. 그러나 진가는 이제부터 발휘된다. map()에 들어가는 함수에서 리턴을 배열을 할 경우 어떻게 될까? 요소에 2를 곱한 후 그 결과를 배열로 리턴하면 map()의 경우 리턴되는 각각의 배열 요소를 배열로 감싸서 리턴한다. [ [ 2 ], [ 4 ], [ 5 ], [ 6 ], [ 7 ] ] 하지만 flatMap()이 출동하면 어떻게될까? 일련의 처리를 수행하는 함수에서 각각의 요소를 배열로 리턴해도 리턴하는 요소의 배열을 제거하여 순수한 값을..
-
Array.prototype.map()JavaScript/JavaScript 2019. 9. 10. 18:44
그동안 Javascript의 쓰고 싶었으나 몰라서 못썼던 기능들을 학습해보자. 가장 먼저 map()함수다. 해당 함수는 배열에 사용할 수 있다. map() 인자로 함수를 넣어서 배열의 모든 요소들에 동일한 로직을 수행할 수 있다. map()의 인자로 익명함수를 넣었고 x는 arr1의 요소들이다. 요소에 곱하기 2를 하여 리턴하여 새로운 배열을 반환한다. 여기서 중요한건 기존 arr1변수에 값이 변경되는 것이 아니라 새로운 배열을 생성한다는 것이다!! 잊지말자! 위의 기능을 풀어보면 다음과 같다. const arr = [1, 2, 3, 4, 5]; function myMap(array) { const tempArray = []; for(let i = 0; i < array.length; i += 1) { ..
-
로우 레벨로 살펴보는 Node.js 이벤트 루프JavaScript/Node.js 2019. 8. 1. 12:52
Okky 사이트의 Tech 카테고리에서 좋은 글을 발견하여 필요할 때 복습하며 보고자 링크를 남긴다. https://evan-moon.github.io/2019/08/01/nodejs-event-loop-workflow/ 로우 레벨로 살펴보는 Node.js 이벤트 루프 1년 전, 필자는 setImmediate & process.nextTick의 차이점에 대해 설명하면서 Node.js의 이벤트 루프 구조에 대해 살짝 언급한 적이 있었다. 놀랍게도 독자 분들은 원래 설명하려고 했던 부분보다 이벤트 루프 부분에 대해서 더 많이 관심을 주었고, 필자는 그 부분에 대해서 많은 질문을 받았었다. 그래서 이번에는 Node.js evan-moon.github.io 해당 글은 Okky사이트의 "devEvan"님께서 원작..