JS数组多重组合

时间:2019-08-09 22:55:33 类型:JS/JQUERY
字号:    

多组信息,不同的组合,一共可以有哪些组合呢, 这里给大家一个JS数组组合实例分享


var values = [
		 ["小明","小红"],
		 ["语文","数学","英语"],
					    
	     ];  

	//笛卡尔乘积 组合原理 将二维数组进行多重组合
		function arrToCombination(arr) {
		    var next = arr.pop();//删除数组中的最后一个元素, 返回删除的元素
		    while(arr.length > 0) {
		       var t = [];
		       var pre = arr.pop();  //前一个数组
		       if(! Array.isArray(pre)) pre = [pre];
		        for(x in pre) {
		            for(y in next){
		            	var v = [];
		            		v.push(pre[x]);
		            		v = v.concat( Array.isArray(next[y]) ? next[y] : [next[y]]);
		            	t.push(v);
		            }
		        }
		        next = t;
		    }
		    return next;
		  }
	  console.log(arrToCombination(values));