群里有人问的问题:
1、function([1,2,3,4], 2), 得结果12,13,14,23,24,34
2、function([1,2,3,4], 3), 得结果123,124,234
从这两个看出规律,就是给一个数组和number为参数,返回最终的排列组合。
偶算法方面实在蛋白,但是对递归非常喜欢。下班回家尝试些了一下,代码很白,不过答案还真出来了。
<script type="text/javascript">
<!--
var loop = function(arry, n){
if(arry.length < n || !n){
return "end";
};
var result = "";
var base = "";
for (var i = 0; i < n-1 ; i++ ) {
base += arry[i];
};
for (var index = n-1; index < arry.length ; index++ ) {
result += base + arry[index] + ",";
}
arry.shift();
result += loop(arry,n);
return result;
};
document.write(loop([1,2,3,4,5,6,7,8,9],5));
//-->
</script>
输出结果: 12345,12346,12347,12348,12349,23456,23457,23458,23459,34567,34568,34569,45678,45679,56789,end

被折叠的 条评论
为什么被折叠?



