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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值