猿问

使用javascript 扁平化数组---5种方法

使用递归: map、reduce
function flatten(arr) {    var res = [];
    arr.map(item => {
        res = Array.isArray(item) ? res.concat(flatten(item)) : res.push(item);
    });    return res;
}
function flatten(arr) {  
    return arr.reduce((result, item)=> {        return result.concat(Array.isArray(item) ? flatten(item) : item);
    }, []);
}
循环,一层一层剥开
function flatten(arr) {    while(arr.some(item=>Array.isArray(item))) {
        arr = [].concat(...arr);
    }    return arr;
}
黑科技:join、toString
function flatten(arr) {    return arr.join(',').split(',').map(function(item) {        return parseInt(item);
    })
}
function flatten(arr) {    return arr.toString().split(',').map(function(item) {        return Number(item);
    })
}

上边这两个代码块表示自己也看不懂,大佬能帮忙解释一下吗?


千巷猫影
浏览 231回答 1
1回答
随时随地看视频慕课网APP
我要回答