最近做项目实现一个需求需组装二位数组,自己写了一段(菜鸟级别)功能是实现了,但是太复杂了,一个大神给我写了一段代码很简洁,下面就是大神写的代码,有需要的可以借鉴借鉴……
var a1 = [1,2]; var b1 = ["x","y"]; var c1 = ["a","b","c"]; var d1 = ["g","u"]; var test = [a1,b1,c1,d1]; var len = test.length; var result = []; for(var m=1; m< len; m++) { var temp1 = new Array(); if(m==1){ temp1 = test[m-1]; }else{ for(var n =0;n<result.length;n++) { temp1.push(result[n]); } result = []; } var temp2 = test[m]; for (var i = 0; i < temp1.length; i++) { for (var j = 0; j < temp2.length; j++) { result.push(temp1[i] + "_" + temp2[j]); } } console.log(result); }
可能上面描叙不是很清楚,下面我再举例详细描叙一下,就是在二维数组中有多个数组如: var a =[[a1,a2],[b1,b2,b3],[c1,c2]];然后要把它用下划线组装成一个数组,如下:
[a1_b1_c1,
a1_b1_c2,
a1_b2_c1,
a1_b2_c2,
a1_b3_c1,
a1_b3_c2,
a2_b1_c1,
……………………]
写到这里相信已经明白了……