多维数组转为一维数组,一维数组转为多维数组

1、先将多维数组转为一维数组
1.1 扁平化

let arr = [1,[2,[3,[4,[5]]]]]
const reasut3 = arr.flat(Infinity)  //  [1, 2, 3, 4, 5]

1.2 递归

let arr1 = [1,[2,[3,[4,[5]]]]]
var new_arr = [];
function fn(arr) {
    
    
    arr.forEach(function (item, index, arr){
    
    
        if(item instanceof Array) {
    
    
            fn(item)
        }else {
    
    
            new_arr.push(item);
        }
    })
    return new_arr;
}
let result = fn(arr1); //  [1, 2, 3, 4, 5]

2、将一维数组转化多维数组

let b = [2, 3, 4, 5, 6, 7, 8]
function fn(b){
    
    
   let c = []
   for(let i = 0;i < b.length;i++){
    
    
      c.push([b[i]])
   }
   for(let i = c.length - 1;i >= 0;i--){
    
    
      let e = [b[i - 1],c[i]]
      i ? c.splice(i -1, 2, e) : c
   }
   return c[0]
}
let result = fn(b)

猜你喜欢

转载自blog.csdn.net/weixin_44949068/article/details/130533335