js、vbs二维数组排列组合示例
js、vbs二维数组排列组合源代码,js、vbs二维数组全排列组合源代码
现在有一个不确定长度的数组,比如:每一个数组的项长度也不确定,如何 遍历这个数组,得到如: FuWeiChong ,FuWeiTong。。。。这样的数据var temparr = [ ["Fu", "Hai", "Huan"], ["Wei", "You"], ["Chong", "Tong", "Zhong"], ["1", "2", "3"]]
要实现这种数组的排列组合,需要使用到递算法。
js实现二维数组排列组合示例如下,来源:http://www.cnblogs.com/artwl/archive/2011/10/20/2218838.html
vbs实现依据js改编
<script> function doExchange(doubleArrays) { var len = doubleArrays.length; if (len >= 2) { var len1 = doubleArrays[0].length; var len2 = doubleArrays[1].length; var newlen = len1 * len2; var temp = new Array(newlen); var index = 0; for (var i = 0; i < len1; i++) { for (var j = 0; j < len2; j++) { temp[index] = doubleArrays[0][i] + doubleArrays[1][j]; index++; } } var newArray = new Array(len - 1); for (var i = 2; i < len; i++) { newArray[i - 1] = doubleArrays[i]; } newArray[0] = temp; console.log(newArray) return doExchange(newArray); } else { return doubleArrays[0]; } } var temparr = [ ["Fu", "Hai", "Huan"], ["Wei", "You"], ["Chong", "Tong", "Zhong"], ["1", "2", "3"]]; var ret = doExchange(temparr); document.write('结果:'+ret.length+'项<br>'+ret.join('<BR>')); </script>
vbs实现二维数组排列组合示例如下,运行下面代码需要在IE10-以下
<script language="vbscript"> function concatArray(arr) dim l,len1,len2,newlen,temp(),index,newArray() l=ubound(arr,1) if l>=1 then len1=ubound(arr(0)) len2=ubound(arr(1)) newlen=(len1+1)*(len2+1)-1 redim temp(newlen) index=0 for i=0 to len1 for j=0 to len2 temp(index)=arr(0)(i)&arr(1)(j) index=index+1 next next redim newArray(l-1) for i=2 to l newArray(i-1)=arr(i) next newArray(0)=temp concatArray=concatArray(newArray) else concatArray=arr(0) end if end function dim arr() redim arr(3) arr(0)=split("a,b,c",",") arr(1)=split("d,e",",") arr(2)=split("f,g,h,i",",") arr(3)=split("1,2,3",",") '''''更多,注意修改redim语句下标 rst=concatArray(arr) document.write("结果:"&(ubound(rst)+1)&"<BR>"&join(rst,"<BR>")) </script>
加支付宝好友偷能量挖...
原创文章,转载请注明出处:js、vbs二维数组排列组合示例