js 가장 완전한 배열 의 내 림 차원 5 가지 방법(소결)

업무 개발 에서 2 차원 배열,다 차원 배열 이 1 차원 배열 로 전환 하 는 수 요 는 없어 서 는 안 된다.일부 다 차원 배열 에는 더욱 깊이 새 겨 질 수 있 고 배열 의 강 차원 은 바로 이 문 제 를 해결 하 는 것 이다.
1.배열 문자열 화

let arr = [[222, 333, 444], [55, 66, 77], {a: 1} ]
arr += '';
arr = arr.split(',');
 
console.log(arr); // ["222", "333", "444", "55", "66", "77", "[object Object]"]
모든 요 소 는 문자열 로 변환 되 고 요 소 는 대상 형식 으로 변 환 됩 니 다. "[object Object]" ,같은 유형의 숫자 나 문자열 에 대해 서 는 가능 합 니 다.
2.귀속

function reduceDimension(arr){
  let ret = [];
  let toArr = function(arr){
    arr.forEach(function(item){
      item instanceof Array ? toArr(item) : ret.push(item);
    });
  }
  toArr(arr);
  return ret;
}
3、Array​.prototype​.flat()

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]
4、

//      ,   stack            
var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]];
function flatten(input) {
 const stack = [...input];
 const res = [];
 while (stack.length) {
  //    pop   stack        
  const next = stack.pop();
  if (Array.isArray(next)) {
   //    push           ,         original input
   stack.push(...next);
  } else {
   res.push(next);
  }
 }
 //    reverse         
 return res.reverse();
}
flatten(arr1);// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4]
5、

//    reduce、concat                
var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]];
 
function flattenDeep(arr1) {
  return arr1.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
}
flattenDeep(arr1);
// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4]
js 의 가장 완전한 배열 의 내 림 차원 5 가지 방법(소결)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 js 배열 의 내 림 차원 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기