数组扁平化--2021前端面试知识点整理12

定义:将一个多维数组变为一个一维数组

方法一:flat()

console.log(arr.flat(Infinity))

方法二:正则表达式,弊端:把数组变成字符串

const res2 = JSON.stringify(arr).replace(/\[|\]/g, '').split(',')

方法三:正则改良版本

const res3 = JSON.parse('[' + JSON.stringify(arr).replace((/\[|\]/g, '')+ ']'))

方法四:reduce

    const flatten = arr =>{
        return arr.reduce(
            (pre, cur) => {
                return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
            }
        )
    }
    const res4 = flatten(arr);

方法五:函数递归

    const res5 = [];
    const fn = arr => {
        for (let i = 0; i < arr.length; i++){
            if (Array.isArray(arr[i])) {
                fn(arr[i]);
            }else {
                res5.push(aee[i]);
            }
        }
    }

上一篇:Java泛型PECS


下一篇:Numpy中的ravel()与flatten()函数