每当我返回我的答案不在数组中时,我必须使用递归按 2 组对给定数组进行分组
我创建了一个数组然后返回了那个数组
输入:[5,1,4,2,3]
function pairs(xs) {
if (xs.length <= 1){
return [];
} else {
let [first,second,...rest] = xs;
let result = [first,second];
let newxs = xs.slice(1);
return [result] + pairs(newxs);
}
}
预期输出:[[5, 1], [1, 4], [4, 2], [2, 3]]
实际输出:5,11,44,22,3
最佳答案
您可以使用 spread operator 修复该功能而不是 +
:
function pairs(xs) {
if (xs.length <= 1){
return [];
} else {
let [first, second,] = xs;
let result = [first,second];
let newxs = xs.slice(1);
return [result, ...pairs(newxs)];
}
}
const result = pairs([5,1,4,2,3]);
console.log(result)
关于javascript - 递归和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57226859/