javascript - 递归和数组

标签 javascript arrays recursion

每当我返回我的答案不在数组中时,我必须使用递归按 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/

相关文章:

python - 树的所有路径

javascript - 在类而不是 id 中加载 map

javascript - 选项卡切换事件可用于 Google Chrome 扩展?

java - 递归级别和循环计数

java - 用户提供的整数数组的第一,第二和第三大数

javascript - 从 reviver 访问 JSON 对象中的数组

c - 递归POW : warning: control may reach end of non-void function

javascript - socket.io 无法在 Express app.post 回调中发出

javascript - 使用媒体查询修改 yAxys 组件的行为

javascript - 在 "Unique Morse Code Words"问题中,我在使用 JavaScript 时遇到问题