- 使用递归:
function flattenArray(arr) {
let result = []
arr.forEach(item => {
if (Array.isArray(item)) {
result = result.concat(flattenArray(item))
} else {
result.push(item)
}
})
return result
}
// 示例
const nestedArray = [1, [2, [3, 4]], 5]
const flattenedArray = flattenArray(nestedArray)
console.log(flattenedArray)
- 使用reduce方法:
function flattenArray(arr) {
return arr.reduce((result, item) => {
if (Array.isArray(item)) {
return result.concat(flattenArray(item));
} else {
return result.concat(item);
}
}, []);
}
const nestedArray = [1, [2, [3, 4]], 5];
const flattenedArray = flattenArray(nestedArray);
console.log(flattenedArray);
- 使用ES6的展开运算符:
function flattenArray(arr) {
while (arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr)
}
return arr
}
// 示例
const nestedArray = [1, [2, [3, 4]], 5]
const flattenedArray = flattenArray(nestedArray)
console.log(flattenedArray)