js 不使用arr.flat() 实现数组拍平函数
时间: 2023-03-29 09:01:23 浏览: 174
可以使用递归的方式实现数组拍平函数,例如:
function flatten(arr) {
let result = [];
for (let i = ; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
result = result.concat(flatten(arr[i]));
} else {
result.push(arr[i]);
}
}
return result;
}
这个函数会递归地遍历数组中的每个元素,如果元素是数组,则继续递归遍历,否则将元素添加到结果数组中。最终返回结果数组即可。
相关问题
实现一个JS函数,传入一个多维数组,返回一个平铺的一维数组
好的,这个问题我可以回答。以下是实现一个JS函数,传入一个多维数组,返回一个平铺的一维数组的代码:
function flatten(arr) {
return arr.reduce(function (flat, toFlatten) {
return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);
}, []);
}
这个函数使用了递归的方式,将多维数组转换为一维数组。如果传入的元素是一个数组,就递归调用自身,否则就将该元素添加到结果数组中。
js中flat函数的用法
`flat()` 函数是用于将一个多维数组(嵌套数组)变为一维数组的方法,它的使用方法如下:
```javascript
let arr = [1, 2, [3, 4]];
let flatArr = arr.flat();
console.log(flatArr); // [1, 2, 3, 4]
```
可以看到,`flat()` 函数将原先的多维数组 `[1, 2, [3, 4]]` 变成了一维数组 `[1, 2, 3, 4]`。
在 `flat()` 函数中可以传入一个整数参数,表示要扁平化的层数。例如:
```javascript
let arr = [1, 2, [3, [4, 5]]];
let flatArr = arr.flat(2);
console.log(flatArr); // [1, 2, 3, 4, 5]
```
这里的参数 `2` 表示要扁平化两层,即将 `[4, 5]` 这个数组也扁平化到一维数组中。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)