我需要从 javascript 中的字符串中获取 2 的组合
var string = 'abcdefghijklmnopqrstuvwxyz';
预期输出
aa
ab
ac
...
我发现了这个,但我无法弄清楚如何仅过滤 2 长度的组合,并避免其他“额外”计算:
var string = 'abcdefghijklmnopqrstuvwxyz';
var tree = function(leafs){
var branches = [];
if(leafs.length == 1) return leafs;
for(var k in leafs){
var leaf = leafs[k];
tree(leafs.join('').replace(leaf,'').split('')).concat("").map(function(subtree){
branches.push([leaf].concat(subtree));
});
}
return branches;
};
console.log(tree(string.split('')).map(function(str){return str.join('')}))
最佳答案
试试这个:
var string = 'abcdefghijklmnopqrstuvwxyz'
var combinations = []
for (var i = 0; i < string.length; i++) {
for (var j = i; j < string.length; j++) {
combinations.push(string[i] + string[j])
}
}
这将产生aa, ab... bb, bc... zz
。如果你想要aa, ab... ba, bb... zz
,只需将第二个for循环更改为for (var j = 0...
关于javascript - 从javascript中的字符串中获取2的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39285237/