扁平化多维数组

发布于 2021-11-25  3,516 次阅读


将下面的多维数组打开,输出去重后的结果(扁平化数组)

function fn(array, result = []) {
    for (let i of array) {
        if (Array.isArray(i)) {
            fn(i, result)
        } else {
            result.push(i)
        }
    }
    return result
}
let s = fn([1, 2, 3, [1, 2, 2, 3, [4, 5, 6]]])
console.log([...new Set(s)]);

使用递归实现。将需要转化的数组以及结果作为参数传进去。然后循环数组中的每一项,判断是不是一个数组,如果是,则调用fn,否则将这项push到result数组里面,并return出来。


活的像诗一样