js flatten方法
时间: 2023-08-14 15:05:04 浏览: 178
在 JavaScript 中,可以使用 `Array.prototype.flat()` 方法或递归实现一个 `flatten` 方法来将多维数组扁平化为一维数组。下面是两种实现的示例代码:
1. 使用 `Array.prototype.flat()` 方法:
```javascript
const arr = [1, [2, [3, 4], 5]];
const flattened = arr.flat();
console.log(flattened); // [1, 2, 3, 4, 5]
```
`Array.prototype.flat()` 方法会按需将多维数组扁平化,可以传入一个可选的参数 `depth` 来指定扁平化的深度。如果不指定 `depth`,则默认为 1。
2. 使用递归实现 `flatten` 方法:
```javascript
function flatten(arr) {
let result = [];
arr.forEach(item => {
if (Array.isArray(item)) {
result = result.concat(flatten(item));
} else {
result.push(item);
}
});
return result;
}
const arr = [1, [2, [3, 4], 5]];
const flattened = flatten(arr);
console.log(flattened); // [1, 2, 3, 4, 5]
```
递归实现的 `flatten` 方法会遍历数组中的每一项,如果遇到子数组,则递归调用自身来处理子数组,并将结果拼接到最终的结果数组中。
无论是使用 `Array.prototype.flat()` 方法还是递归实现的 `flatten` 方法,都可以将多维数组扁平化为一维数组。根据具体的需求和兼容性要求,选择适合的方法即可。
阅读全文