면접 문제 - 알고리즘 필기 문제 (휴대용)

771 단어 면접 문제
이미 알 고 있 는 데이터:
var arr = [[1,2,3], [3,4,5], [6,7,8,9,[11,12,[12,13, [14]]]], 10]

프로그램 을 만들어 서 배열 을 평면 화하 고 중복 되 는 부분 데 이 터 를 제거 합 니 다. 마지막 으로 오름차 와 중복 되 지 않 는 배열 을 얻 을 수 있 습 니 다.
해석: 먼저 이 문 제 를 보고 배열 의 reduce, sort, 그리고 Set 제거 와 재 귀 논 리 를 다음 과 같이 생각 했 습 니 다.
var arr = [[1,2,3], [3,4,5], [6,7,8,9,[11,12,[12,13, [14]]]], 10]

function getArr (arr1) {
     function getInitArr (col) {
         return col.reduce((a,b) => {
             if (b instanceof Array) {
                 a = a.concat(getInitArr(b))
             } else {
                 a.push(b)
             }
             return a
         }, [])
     }
     return [...new Set(getInitArr(arr1))].sort((a,b) => a -b)
 }
 console.log(getArr(arr))

좋은 웹페이지 즐겨찾기