TIP
JavaScript 中的数组扁平化是指将嵌套多层的数组转换为只有一层的数组。这意味着将数组中的所有元素(无论是数组还是其他类型的值)都放置在同一个层级上。
下面是一些实现数组扁平化的方法:
- 使用递归实现数组扁平化:
javascript
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, 6]]];
const flattenedArray = flattenArray(nestedArray);
console.log(flattenedArray); // [1, 2, 3, 4, 5, 6]
- 使用数组的 flat() 方法(需要注意兼容性):
javascript
const nestedArray = [1, 2, [3, 4, [5, 6]]];
const flattenedArray = nestedArray.flat(Infinity);
console.log(flattenedArray); // [1, 2, 3, 4, 5, 6]
- 使用 reduce() 方法实现数组扁平化:
javascript
function flattenArray(arr) {
return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenArray(val)) : acc.concat(val), []);
}
const nestedArray = [1, 2, [3, 4, [5, 6]]];
const flattenedArray = flattenArray(nestedArray);
console.log(flattenedArray); // [1, 2, 3, 4, 5, 6]
这些方法都可以将嵌套多层的数组扁平化为只有一层的数组。