Appearance
如何能使数组扁平化?
什么是数组扁平化
数组扁平化就是将多维数组转成一维数组
js
// 多维数组
let arr = [1, 2, [3, 4, [6, 7]]]
// 第一种方法:利用 flat() 函数
function flatArr1(arr) {
    return arr.flat(Infinity)
}
// 第二种方法: 正则匹配
function flatArr2(arr) {
    return JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g, '') + ']')
}
// 第三种方法:利用 reduce() 遍历所有的元素
function flatArr3(arr) {
    return arr.reduce((i, j) => {
        return i.concat(Array.isArray(j)? flatArr3(j) : j)
    }, [])
}
// 第四种方法:直接使用递归函数
function flatArr4(arr) {
    let new_arr = []                                                     
    function innerArr(v) {
        for(let i in v) {
            let item = v[i]
            if(Array.isArray(item)) {
                innerArr(item)
            } else {
                new_arr.push(item)
            }
        }
    }
    innerArr(arr)
    return new_arr
}
Study Note