`
caiceclb
  • 浏览: 239448 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

js递归实现一个问题的解答

阅读更多

群里有人问的问题:

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics