JS实现数组扁平化

1.使用Array.prototype.flat()方法

 flat(n) n=>扁平化的层级

/**
 * @description: 数组扁平化
 * @param {Array} arr 传入数组
 * @return {Array}  reslute 返回结果
 */

function flatten(arr) {
    return arr.flat(Infinity);
}

let arr = [1, 2, [3, 4, 5, [6, 7, 8, [9, 10, 11]]]];

console.log(flatten(arr));

2.使用递归:

/**
 * @description: 数组扁平化
 * @param {Array} arr 传入数组
 * @return {Array}  reslute 返回结果
 */

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

let arr = [1, 2, [3, 4, 5, [6, 7, 8, [9, 10, 11]]]];
console.log(flatten(arr));

3.使用:toString(),split(),map()

/**
 * @description: 数组扁平化
 * @param {Array} arr 传入数组
 * @return {Array}  reslute 返回结果
 */

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


let arr = [1, 2, [3, 4, 5, [6, 7, 8, [9, 10, 11]]]];
console.log(flatten(arr));

 

你可能感兴趣的:(Web开发——JS,javascript,开发语言,ecmascript)