主要用到的思想是递归;另外数组降维也有一个flat()
//数组降维 主要思想是递归
let arr = [1, 2, 3,[4, 5, 6, 7,[4, 3, 2, [554543, 2423], 6]], 0]
let flatten = (arr=[]) => {
// 首先建立一个[]数组
//判断数值是不是数组,如果是数字,就放到空数组里面
//如果是数组就再次使用flatten方法 --递归思想
return arr.reduce((pre, cur) => {
//如果reduce 的第二个参数存在,
// 那 pre 初始值就是 第二个参数 这里是[]
//而 cur 就是数组的第一项元素 1(这里是1)
//这里的return是将数组保存起来,用于下一次pre
return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
}, [])
}
let res = flatten(arr)
console.log(JSON.stringify(res),'111')