<script>
// 多维数组转换为一维数组
var arr = [1, [2, [3, [4, [5]]]]]
// 1.数组自带的方法
console.log(arr.flat(Infinity));
// 2.正则
let res = JSON.stringify(arr).replace(/\[|\]/g, "").split(",")
// 3.改进
let res1 = JSON.parse("[" + res + "]")
// 4.递归
let newArr = [];
function deep(arr) {
for (var i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
deep(arr[i])
} else {
newArr.push(arr[i])
}
}
}
deep(arr);
console.log(newArr);
//5. es6扩展运算符只能把二维数组转换为一维数组
let arr1 = [[1, 2, 3, 5], [2, 5, 8, 2]]
console.log([].concat(...arr1));
//6. 数组reduce方法
const curArr = (arr) => arr.reduce((pre, cur) => pre.concat(Array.isArray(cur) ? curArr(cur) : cur), [])
console.log(curArr(arr));
</script>