Js递归把长数组分割 分批次传入新数组
时间: 2023-09-21 09:06:27 浏览: 92
好的,我会尽力回答你的问题。下面是一个递归函数可以将长数组分割成指定长度的小数组,并将这些小数组依次添加到一个新数组中:
```javascript
function divideArray(arr, size) {
if (arr.length <= size) {
return [arr];
} else {
return [arr.slice(0, size), ...divideArray(arr.slice(size), size)];
}
}
```
其中,`arr`是待分割的长数组,`size`是指定的小数组长度。如果`arr`的长度不超过`size`,则直接返回一个只包含`arr`的新数组;否则,将`arr`的前`size`个元素取出来作为一个新数组的一部分,再将`arr`剩下的元素递归传入该函数,并将返回的小数组添加到新数组的末尾。最终,该函数将返回由所有小数组组成的新数组。
例如,假设有一个长度为`10`的数组`[1,2,3,4,5,6,7,8,9,10]`,要将它分割成长度为`3`的小数组,可以这样调用上面的函数:
```javascript
const arr = [1,2,3,4,5,6,7,8,9,10];
const size = 3;
const result = divideArray(arr, size);
console.log(result); // [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
```
最终,`result`将会是一个包含`4`个长度为`3`的小数组的新数组。希望这个回答能够帮到你。
阅读全文