是否可以编写递归块函数?如果没有,为什么不呢?
我不需要此功能,我只是想了解递归并编写使用该概念的自己的功能。如果我不能使用递归来解决此问题,那么在这种情况下和其他情况下,递归使错误的工作成为错误的工具吗?
function chunk(array, size) {
if (array.length === 0) {
return array;
} else {
return [array.slice(0, size), chunk(array.slice(size),size)];
}
}
答案 0 :(得分:0)
如果我对您的理解正确,那么您正在尝试实现这样的目标
function chunk(array, size) {
if (array.length === 0) {
return array;
} else {
return [array.slice(0, size)].concat(chunk(array.slice(size),size));
}
}
答案 1 :(得分:0)
您的函数返回一个数组,该数组具有第一个分块数组,然后对每个其他分块嵌套数组。
string(6) "GET: P"
string(6) "GET: P"
string(4) "1233"
string(6) "GET: P"
array(1) {
["abc3"]=>
string(4) "1233"
}
所提到的部分需要提升一个阵列级别。这可以通过使用return [array.slice(0, size), chunk(array.slice(size), size)];
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
前面的spread syntax ...
来完成。
chunk
function chunk(array, size) {
return array.length
? [array.slice(0, size), ...chunk(array.slice(size), size)]
: [];
}
console.log(chunk([1, 2, 3, 4, 5, 6, 7, 8], 3));