大神们啊 求帮助 我的问题是
js  数组的排列 比如说 
L1=['a','b','c','d']
L2=['1','2']
那么结果 应该是['a1','a2','b1','b2','c1','c2' ,'d1','d2']
然后  有几个数组 是不固定 也可能是
L1=['a']
L2=['1','2']
L3=['g']
那么结果就是 ['a1g','a2g']
求大神用js写出来  不要用es6.......es6的数组推导可以实现 但是浏览器不兼容。。

解决方案 »

  1.   

    <html>
    <body>
    <p id="abc"></p>
    <script>
    var L1=["a","b","c","d"];
    var L2=["1","2"];
    var L3=["e","f"];
    var L4=["g","h"];
    document.getElementById("abc").innerHTML=permutations(L1,L2,L3,L4);
    function permutations(){
     var temp=arguments[0];
     for(var i=1;i<arguments.length;i++)
      temp=addSuffix(temp,arguments[i]);
     return temp;
    }
    function addSuffix(array1,array2){
     var temp=new Array();
     for(var i=0;i<array1.length;i++)
      for(var j=0;j<array2.length;j++)
       temp[i*array2.length+j]=array1[i].toString()+array2[j].toString();
     return temp;
    }</script>
    <body>
    </html>
      

  2.   

    1、首先这是java版本不是JavaScript板块,你发错地方了。建议重发;
    2、标题“排练组合” --> “排列组合”
    3、貌似得用递归,废话不多说了,上代码。
    <html>
    <head>
    <script type="text/javascript">
    function loopToRecursion(input, output, array, j) {
    if (j == array.length) {
    var str = "";
    for (var i = 0; i < array.length; i++) {
    if (str.length > 0) {
    //如果需要的话在这里可以给每个数组的输出结果加一个分隔符
    str = str + "";
    }
    str = str + input[i][array[i]];
    }
    output.push(str);
    } else {
    while (array[j] < input[j].length) {
    loopToRecursion(input, output, array, j + 1);
    array[j]++;
    if (j + 1 < array.length) {
    array[j + 1] = 0;
    }
    }
    }
    } var intputArray = new Array();
    intputArray.push([ "aa", "bb", "cc" ]);
    intputArray.push([ "xx", "yy" ]);
    intputArray.push([ "11", "22", "33", "44" ]);
    intputArray.push([ "$&", "&*%", "@$%", "*_*" ]); document.write("input:<br>");
    for ( var j in intputArray) {
    var array = intputArray[j];
    var str = "";
    for ( var i in array) {
    if (str.length > 0) {
    str = str + ",";
    }
    str = str + array[i];
    }
    document.write("&nbsp;" + str + "<br>");
    } document.write("<br>output:<br>");
    var tempArray = new Array();
    for (var i = 0; i < intputArray.length; i++) {
    tempArray.push(0);
    } var outputArray = new Array();
    loopToRecursion(intputArray, outputArray, tempArray, 0);
    for(var i in outputArray){
    document.write("&nbsp;" + outputArray[i] + "<br>");
    }
    </script>
    </head>
    <body>
    </body>
    </html>