方法一:

   

let  = [1,[2,3],[4,5,[6,7]]];
   let result_str = arr.join(',').split(',');
      console.log(result_str)  // [1,2,3,4,5,6,7]

 

方法二:使用数组的concat方法,以及apply

  concat方法参数如果是一个数组,会把一个一维数组转为单个的项和前面的数组链接起来,如果是多维数组,则保留多维数组里面的项。

  

let arr1 = ['3',4],
  arr2 = ['3',4,[5,6]];
  console.log([1,2].concat(arr1)); // [1, 2, "3", 4]
  console.log([1,2,].concat(arr2)); // [1, 2, "3", 4, [5,6]]

  所以使用concat方法只能把二维数组转为一维数组

 

let arr3= [[1,2],'3','4',[5,6],[7]];
  console.log([].concat.apply([], arr3));  // [1,2,"3","4",5,6,7]

 

方法三:递归

function  arrMethod(arr) {
    if (!arr.length) return;
    return arr.reduce(
        (pre, cur) =>
            Array.isArray(cur) ? [...pre, ...arrMethod(cur)] : [...pre, cur],
          []
    );
}
arrMethod([1,2,[3,4,[5,6]]])  // 1,2,3,4,5,6