js 표준 2 차원 배열 1 차원 배열 로 바 꾸 는 방법
문제: [0, 1], [2, 3], [4, 5] - > [0, 1, 2, 3, 4, 5]?
방법 1
이용
es5
의 arr.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]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.