方法一:
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