【问题标题】:Develop function to find all permutations of a sequence of digits [duplicate]开发功能以查找数字序列的所有排列[重复]
【发布时间】:2017-05-30 02:34:46
【问题描述】:

我需要编写一个 JavaScript 函数来显示作为参数传递的数字的所有数字的所有排列,但不知道该怎么做。

例如,给定 1020,它将产生

1020 , 0120 , 0210 , 0102.

【问题讨论】:

    标签: javascript


    【解决方案1】:

    这是一个可行的解决方案。希望对您有所帮助!

    var result = [];
    var newArray = [];
    
        function permute(someArray) {
            var i, ch;
            for (i = 0; i < someArray.length; i++) {
                ch = someArray.splice(i, 1)[0];
                newArray.push(ch);
                if (someArray.length == 0) {
                    result.push(newArray.slice());
                }
                permute(someArray);
                someArray.splice(i, 0, ch);
                newArray.pop();
            }
    
            return result;
        };
    
        var n =  1901;
        var arr = (""+n).split("");
    
        var myResult = permute(arr);
    
        for(var i in myResult){
            console.log(myResult[i].join(""));
        }

    【讨论】:

    • 在 node.js 解释器中测试过,效果很好。输出:1901 1910 1091 1019 1190 1109 9101 9110 9011 9011 9110 9101 0191 0119 0911 0911 0119 0191 1190 1109 1910 1901 1019 1091
    • @clearlight 很高兴它有效 :)
    • @HeryDev,为什么是 result.push(newArray.slice()),而不仅仅是 result.push(newArray)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2015-06-18
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    相关资源
    最近更新 更多