js 중수 조 편평 화

1319 단어 js
배열 평면 화: 다 층 배열 을 한 층 만 있 는 배열 로 바 꾸 는 것 입 니 다.
실현 결과:
var arr=[1,[2,[3,4]]];//    [1,2,3,4]

 1. 재 귀: 배열 요 소 를 순환 하고 배열 이 라면 재 귀 호출 방법
function flatten(arr){
    var res = [];
    for(var i=0;i

2. reduce (): 하나의 함 수 를 누산기 로 받 아들 이 고 배열 의 모든 값 은 왼쪽 에서 오른쪽으로 줄 이기 시작 하여 최종 적 으로 하나의 값 으로 계산 합 니 다.
reduce (): 함수 의 copose 에 사용 할 수 있 는 고급 함수 입 니 다.
메모: reduce () 는 빈 배열 에 대해 서 는 리 셋 함 수 를 실행 하지 않 습 니 다.
function flatten(arr){
    return arr.reduce(function(prev,item){
        return prev.concat(Array.isArray(item)?flatten(item):item);
    },[]);
}

3. toString (): 배열 요소 가 모두 숫자 라면 toString 방법 을 사용 하 는 것 을 고려 할 수 있 습 니 다. toString 은 배열 의 수 를 쉼표 로 결합 할 수 있 기 때 문 입 니 다.
toString 후 split, 배열 로 전환
[1, [2, [3, 4]]].toString() // "1,2,3,4"
function flatten(arr){
    return arr.toString().split(',').map(function(item){
        return +item;
    })
}

4. es6 확장 연산 자
function flatten(arr){
    while(arr.some(item=>Array.isArray(item)){
        arr = [].concat(...arr);
    }
    return arr;
}

하지만 이 확장 연산 자 는 한 층 의 배열 만 펼 칠 수 있 습 니 다. 
 
 

좋은 웹페이지 즐겨찾기