3个字母组合共有6种组合方式,即3!=3x2x1=6
4个字母组合共有24种组合方式,即4!=4x3x2x1=24
...
3个字母组合需要三层循环,
4个字母组合需要四个循环,以此类推。。。
3个字母组合算法实现:
var arr1 = ["a","a","b"];
var length = arr1.length;
var result = [];
for(var m=0;m<length;m++){
arr2 = arr1.filter(function(elem,index){return m !== index});
for(var n=0;n<length-1;n++){
arr3 = arr2.filter(function(elem,index){return n !== index});
for(var i=0;i<length-2;i++){
result.push(arr1[m]+arr2[n]+arr3[i]);
}
}
}
return result;
输出:
aab,
aba,
aab,
aba,
baa,
baa