0

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

4

1 回答 1

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);
于 2012-12-27T10:59:42.947 回答