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"));