JavaScript数组扁平化

数组扁平化,也就是把包含几个嵌套数组的数组转化成一个一维数组。

有以下几种方法:

1.reduce遍历数组每一项,若值为数组就递归遍历,否则cancat

function flatten(arr) {
return arr.reduce((result, item)=> {
return result.concat(Array.isArray(item) ? flatten(item) : item);
}, []);
}

2.map遍历

function flatten(arr) {
    var res = [];
    arr.map(item => {
        if(Array.isArray(item)) {
            res = res.concat(flatten(item));
        } else {
            res.push(item);
        }
    });
    return res;
}

3.toString&split 调用数组的toString方法,将数组变为字符串后用split分割为数组。

function flatten(arr) {
    return arr.toString().split(',').map(function(item) {
        return Number(item);
    })
}

4.join&split 同上

join可以把数组的所有元素放入一个字符串
split可以把字符串分割成字符串的数组

function flatten(arr) {
    return arr.join(',').split(',').map(function(item) {
        return parseInt(item);
    })
}

猜你喜欢

转载自blog.csdn.net/lixinyi0622/article/details/84981416