在javascript中获取字符串/数组的所有组合

时间:2018-03-14 05:06:48

标签: javascript

我正在编写一个代码,它将返回字符串或数组的所有可能组合。但是我编写的代码并没有考虑将字符重复为可能的组合。这是我的代码 -



function combinations(str) {
    var fn = function(n, r, q) {
        if (!n && !r)
            return;
        if (!r) {
            q.push(n);
        } else {
            fn(n + r[0], r.slice(1), q);
            fn(n, r.slice(1), q);
        }
        return q;
    }
    return fn("", str, []);
}

console.log(combinations("abcd"));




输出

[ 'abcd',   'abc',   'abd',   'ab',   'acd',   'ac',   'ad',   'a',   'bcd',   'bc',   'bd',   'b',   'cd',   'c',   'd' ]

但我想编写一个代码,它会考虑重复字符,例如" abcd"应该给" aabd" ," abac"," abbb"这样的结果以及上述输出。

每个角色可以重复多少次没有限制,但是字符串的大小会有限制。例如,如果字符串的长度为4,则所有输出字符串的长度也应为4或更短。

我有什么建议吗?提前致谢

0 个答案:

没有答案