const arr = [1, [2, 3], [4, 5, [6, 7]]];//三维
// 法一: 利用数组的 flat 方法,参数为 Infinity 时可将任意维数组变为一维
const result_str = arr.flat(2); //参数是转的次数
//法二:这样会将数字变为字符串,没有限制类型可以这样做
let result_str1 = arr.join().split(',');
let result_str2 = arr.toString().split(',');
// 法三:利用数组的 reduce 和 concat 方法,(类似递归的方法)
function concatArr(array) {
var newArr = array.reduce((per, cur) => {
return per.concat(Array.isArray(cur) ? concatArr(cur) : cur);
}, []);
return newArr;
}
console.log(concatArr(arr));
// 法四:利用数组的 扩展运算符和 concat 方法,将二维数组变一维
var arr1 = [].concat(...[[1, 4, 5, 6], [8, 4, 7, 6], [1, 5, 10, 47]]);
console.log(arr1)