You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaScript排列代码以输出数字的两位排列结果?

生成指定长度(两位)的数字排列组合

你当前的代码会生成与输入字符串长度一致的全排列,要实现仅输出两位的排列结果,只需修改递归的终止条件,当拼接的结果长度达到2时就停止递归并记录结果即可。

原代码问题分析

原递归函数的终止条件是str.length == 0,此时result的长度和原输入字符串长度相同,因此只会输出全长度的排列,不符合你需要的两位排列需求。

修改后的代码

let str = $('#num').val();
// 用数组统一收集所有两位排列结果
let twoDigitPermutations = [];

let permutation = (str, result) => {
    // 当结果长度为2时,收集结果并终止当前递归分支
    if (result.length === 2) {
        twoDigitPermutations.push(result);
        console.log(result);
        return;
    }
    for (let i = 0; i < str.length; i++) {
        let rest = str.substring(0, i) + str.substring(i + 1);
        permutation(rest, result + str[i]);
    }
}

permutation(str, '');
// 可直接使用twoDigitPermutations获取所有结果
console.log('所有两位排列:', twoDigitPermutations);

关键改动说明

  • 新增twoDigitPermutations数组,用于统一存储所有符合要求的两位排列,方便后续处理
  • 将递归终止条件改为result.length === 2,一旦拼接的结果达到两位,立即收集并停止当前分支的递归
  • 终止后添加return,避免继续执行后续循环,提升效率

内容的提问来源于stack exchange,提问作者darkhshan naeem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:01:35