js如何实现数组扁平化
时间: 2023-06-02 09:02:39 浏览: 119
方法一:使用递归
```javascript
function flatten(arr) {
let result = []
arr.forEach(item => {
if (Array.isArray(item)) {
result = result.concat(flatten(item))
} else {
result.push(item)
}
})
return result
}
```
方法二:使用reduce
```javascript
function flatten(arr) {
return arr.reduce((prev, curr) => {
return prev.concat(Array.isArray(curr) ? flatten(curr) : curr)
}, [])
}
```
方法三:使用ES6的展开运算符
```javascript
function flatten(arr) {
while (arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr)
}
return arr
}
```
相关问题
js实现数组扁平化再原数组上
以下是在原数组上实现数组扁平化的JavaScript代码:
```javascript
function flatten(arr) {
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
arr.splice(i, 1, ...arr[i]);
i--;
}
}
return arr;
}
const arr = [1, [2, [3, 4], 5], 6];
flatten(arr);
console.log(arr); // 输出:[1, 2, 3, 4, 5, 6]
```
vue实现数组扁平化
Vue 中实现数组扁平化的方法有多种,下面介绍一种常用的方法:
通过使用 JavaScript 内置函数 `reduce()` 和扩展运算符 `...` 实现数组扁平化。
例如:
```
let arr = [1, [2, [3, 4]]];
let flatArr = arr.reduce((acc, cur) => {
return acc.concat(Array.isArray(cur) ? flatArr(cur) : cur);
}, []);
console.log(flatArr); // [1, 2, 3, 4]
```
该代码中,使用了 reduce 函数将每一项都通过递归地合并到一个新的数组中,最后得到扁平化的数组。
阅读全文