在JavaScript中重复给定长度生成所有可能的组合

时间:2012-12-27 10:42:42

标签: javascript combinations combinatorics

我需要在JavaScript中生成给定长度的所有可能组合(字母可以重复)。可以使用for word in ('a'*4..'z'*4)在ruby中编写的东西。

1 个答案:

答案 0 :(得分:1)

JavaScript没有这样的功能语法。使用新的列表推导,您可能会做这样的事情,但它们并不广泛支持。因此,您需要在循环中手动创建字符串:

var from = 97,
    to = from + 26,
    rep = 4,
    callback = function(str) { … };
(function recurse(arr, len) {
    if (len < rep)
        for (var i=from; i<to; i++) {
            arr[len] = i;
            recurse(arr, len+1);
        }
    else
        callback( String.fromCharCode.apply(null, arr) );

})([], 0);