JS 고차함수 문제풀이 [TIL 26일차]

JUNGHUN KIM·2021년 7월 10일
0
post-custom-banner

자바스크립트 map,filter, reduce 문제를 풀던중 아래와 같은 문제가 나왔다.

문제

  • 2차원 배열(배열을 요소로 갖는 배열)을 입력받아 배열들의 요소를 모두 담고 있는 단일 배열을 리턴하세요.

2차원 배열을 가지고 있는 배열은 아래와 같다.

let a = [
 [1,2,3],
 ["a","b","c"]
 [true, false]

]

처음에는 reduce+ join을 써가며 이것저것 해보았지만.. 결국 원하는 결과값을 얻지는 못하였다.
인터넷을 추가로 검색하던도중 2차원 배열이상을 단일 배열로 나타내는 경우는
flat 메서드를 사용하면 손쉽게 사용이 가능하다는 것을 확인하였다.

arr.flat

flat() 메서드는 모든 하위 배열 요소를 지정한 깊이까지 재귀적으로 이어붙인 새로운 배열을 생성합니다.

문법
const newArr = arr.flat([depth])

사실 해당 문제에서 arr.flatt사용이 금지한다는 이야기가 기재되어져 있었는데..
도대체 arr.flat가 뭐길래 쓰면안되는 거지?? 라는 생각으로 arr.flat관련하여 MDN자료를 보니.. ruduce+concat으로 대처가 가능하다는 코멘트가 있었다..

concat은 배열과 배열을 서로합쳐 새로운 하나의 배열을 만들어내는 것이 가능하다.
concat은 기존에도 배운 내용이지만.. 시간이 지나다보니 어느센가 머리속에서 지워버리고 만것같다
잊지 말고 또 사용해보도록 하자..

풀이 예시

return arr.reduce(function(acc,cur){
    return acc.concat(cur)

참조자료
arr.flat MDN
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/flat

profile
개발자가 되고 싶은 일문학도
post-custom-banner

0개의 댓글