js扁平数组转多维数组
时间: 2023-11-12 10:07:15 浏览: 45
可以使用递归的方法将扁平数组转换为多维数组。以下是一个示例的JavaScript代码:
```javascript
function flatToNested(arr, size) {
if (arr.length === 0) {
return [];
}
const nested = arr.splice(0, size);
return [nested, ...flatToNested(arr, size)];
}
const flatArray = [1, 2, 3, 4, 5, 6];
const nestedArray = flatToNested(flatArray, 2);
console.log(nestedArray); // [[1, 2], [3, 4], [5, 6]]
```
在上面的代码中,`flatToNested`函数接收两个参数,`arr`为扁平数组,`size`为每个子数组的长度。该函数首先检查数组是否为空,如果是,则返回一个空数组。然后使用`splice`方法从原数组中提取出长度为`size`的子数组,并递归调用`flatToNested`处理剩余的元素。最后,将提取的子数组和递归处理的结果合并成一个多维数组。
相关问题
js多维数组按深度扁平化
您好!感谢您对 ChitGPT 的提问。针对您的问题,我可以给您提供以下的 JavaScript 代码实现多维数组按深度扁平化的方法:
```javascript
function flatten(arr) {
return arr.reduce(function (res, current) {
return Array.isArray(current) ? res.concat(flatten(current)) : res.concat(current);
}, []);
}
```
使用上述方法,您可以对多维数组进行深度扁平化。例如,对于一个三维数组:
```javascript
const arr = [1, [2, [3, 4], 5], 6];
console.log(flatten(arr));
```
输出结果为:
```
[ 1, 2, 3, 4, 5, 6 ]
```
希望这能够帮到您,如果您还有其他问题,欢迎随时询问。
js 实现扁平化数组
要实现扁平化数组(将多维数组转换为一维数组),你可以使用递归或迭代的方法。以下是使用递归方法实现的示例代码:
```javascript
function flattenArray(arr) {
let flattened = [];
arr.forEach(item => {
if (Array.isArray(item)) {
flattened = flattened.concat(flattenArray(item));
} else {
flattened.push(item);
}
});
return flattened;
}
// 示例用法
const nestedArray = [1, [2, [3, 4], 5], 6];
const flattenedArray = flattenArray(nestedArray);
console.log(flattenedArray); // [1, 2, 3, 4, 5, 6]
```
在上述代码中,`flattenArray` 函数逐个遍历数组中的元素。如果当前元素是数组,则递归调用 `flattenArray` 函数将其扁平化,然后使用 `concat` 方法将扁平化后的结果与 `flattened` 数组合并。如果当前元素不是数组,直接将其添加到 `flattened` 数组中。最后返回扁平化后的数组。
希望这可以帮助到你!如果你有任何更多的问题,请随时问我。