群里有人问的问题:
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