Convert multidimensional arrays to one-dimensional arrays, and convert one-dimensional arrays to multidimensional arrays

1. First
convert the multi-dimensional array to a one-dimensional array 1.1 Flattening

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

1.2 Recursion

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. Convert a one-dimensional array to a multidimensional array

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)

Guess you like

Origin blog.csdn.net/weixin_44949068/article/details/130533335