Skip to content

方法一:使用递归

javascript
function flattenArray(arr) {  
    let result = [];  
    for (let i = 0; i < arr.length; i++) {  
        if (Array.isArray(arr[i])) {  
            result = result.concat(flattenArray(arr[i]));  
        } else {  
            result.push(arr[i]);  
        }  
    }  
    return result;  
}  
  
let nestedArray = [1, [2, [3, [4]], 5]];  
console.log(flattenArray(nestedArray)); // 输出 [1, 2, 3, 4, 5]

方法二:使用reduce方法

javascript
function flattenArray(arr) {  
    return arr.reduce((acc, val) => Array.isArray(val) ? [...acc, ...flattenArray(val)] : [...acc, val], []);  
}  
  
let nestedArray = [1, [2, [3, [4]], 5]];  
console.log(flattenArray(nestedArray)); // 输出 [1, 2, 3, 4, 5]

方法三:使用扩展运算符(ES6)

javascript
function flattenArray(arr) {  
    while (arr.some(item => Array.isArray(item))) {  
        arr = [].concat(...arr);  
    }  
    return arr;  
}  
  
let nestedArray = [1, [2, [3, [4]], 5]];  
console.log(flattenArray(nestedArray)); // 输出 [1, 2, 3, 4, 5]