js 표준 2 차원 배열 1 차원 배열 로 바 꾸 는 방법

2061 단어
js 표준 2 차원 배열 1 차원 배열 로 바 꾸 는 방법
문제: [0, 1], [2, 3], [4, 5] - > [0, 1, 2, 3, 4, 5]?
방법 1
이용 es5arr.reduce(callback[, initialValue]) 실현
var arr1 = [[0, 1], [2, 3], [4, 5]];
var arr2 = arr1.reduce(function (a, b) { return a.concat(b)} );
// arr2 [0, 1, 2, 3, 4, 5]

방법 2
이용 es6
var arr1 = [[0, 1], [2, 3], [4, 5]];
function flatten(arr) { return [].concat( ...arr.map(x => Array.isArray(x) ? flatten(x) : x) ) }
var arr2 = flatten(arr1); // arr2 [0, 1, 2, 3, 4, 5]

  :        
  :var arr = [[1,2],3,[[[4], 5]]]

방법
이용 apply 실현
var arr1 = [[0, 1], [2, 3], [4, 5]];
var arr2 = [].concat.apply([], arr1);
// arr2 [0, 1, 2, 3, 4, 5]

방법
배열 을 문자열 로 바 꾸 어 str.split(',') 을 이용 하여 이 루어 집 니 다.단점 은 배열 요소 가 문자열 로 바 뀌 었 다 는 것 이다.
var arr1 = [[0, 1], [2, 3], [4, 5]];

var arr2 = (arr1 + '').split(',');

var arr2 = arr.toString().split(',');

var arr2 = arr.join().split(',');

// arr2 ["0", "1", "2", "3", "4", "5"]

방법 5 (보충)
ES 의 최신 문법 을 이용 하여 Array. prototype. flat ().단점 은 호환성 문제 다.장점 은 매우 간단 하 다 는 것 이다.
mdn 위 에서 설명 한 바 와 같이 flat () 방법 은 지정 한 깊이 로 돌아 가 모든 하위 그룹 을 연결 하고 새 그룹 으로 되 돌려 줍 니 다.
문법: var newArray = arr.flat(depth), 매개 변수 설명: depth, 선택 가능, 내장 배열 의 구조 깊이 를 지정 하고 기본 값 은 1 입 니 다.
예:
var arr1 = [1, 2, [3, 4]];
arr1.flat();  // [1, 2, 3, 4]

var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat(); // [1, 2, 3, 4, [5, 6]]

var arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flat(2); // [1, 2, 3, 4, 5, 6]

//Infinity        
arr3.flat(Infinity); // [1, 2, 3, 4, 5, 6]

var arr4 = [1, 2, , 4, 5];
arr4.flat(); // [1, 2, 4, 5]

특수 설명: flat () 방법 은 배열 의 빈 항목 을 제거 합 니 다.하지만 undefined, null 은 남아 있 습 니 다.
var arr = [1, 2, undefined , 4, 5, null];
arr.flat(); // [1, 2, undefined , 4, 5, null]

좋은 웹페이지 즐겨찾기