javascript函数式编程例子收集,自己实现
来源:互联网 发布:js控制网页打印区域 编辑:程序博客网 时间:2024/05/17 06:14
例子1:
现有一个不规范二维数组 [[1,2,3],[4,5],[6],[7,8,9,10],[11,12],[13,14],[15,16,17],[18,19,20]]想得到该数组的所有组合方式,如[1,4,6,7,11,13,15,18],[1,4,6,7,11,13,15,19]......
代码实现:
function getArray(array1,array2){ var result = []; for(var i =0,p;p=array1[i];i++){ var pTemp = []; if(typeof(p) == "object"){ pTemp = p; }else{ pTemp.push(p); } for(var j=0,q;q=array2[j];j++){ var qTemp = []; if(typeof(q) == "object"){ qTemp = q; }else{ qTemp.push(q); } result.push(pTemp.concat(qTemp)); } } return result; } var stack = [[1,2,3],[4,5],[6],[7,8,9,10],[11,12],[13,14],[15,16,17],[18,19,20]]; var pop1 = stack.pop(); while(stack.length>0){ var pop2 = stack.pop(); pop1 = getArray(pop1,pop2); } var strResult = []; for(var i = 0;i<pop1.length;i++){ if(typeof(pop1[i])=="object"){ strResult.push(pop1[i].join(" ")); }else{ strResult.push(pop1[i]); } } alert(strResult.join("\n"));