多维数组/多个数组的排列组合

彩票七星彩的选码规则,5个数字至少选2个,列出所有数字组合方法,未选择数字的列用“*”表示。
例子为:5*10表格,可自由选择数字,根据每列数字的选择情况,进行组合。

image.png

代码:

<!DOCTYPE html>
<html>

<head>
<title>数列组合方法</title>
</head>

<body>
  <center>
        <table width="400" border="1" id="table">
            <tr>
                <th align="center">第一列</th>
                <th align="center">第二列</th>
                <th align="center">第三列</th>
                <th align="center">第四列</th>
                <th align="center">第五列</th>
            </tr>
            <tr>
                <td align="center"><button type="button" id="a" onClick="a0('a0', '0')">0</button><input type="text" value=" " id="a0"></td>
                <td align="center"><button type="button" id="a" onClick="a1('a1', '0')">0</button><input type="text" value=" " id="a1"></td>
                <td align="center"><button type="button" id="a" onClick="a2('a2', '0')">0</button><input type="text" value=" " id="a2"></td>
                <td align="center"><button type="button" id="a" onClick="a3('a3', '0')">0</button><input type="text" value=" " id="a3"></td>
                <td align="center"><button type="button" id="a" onClick="a4('a4', '0')">0</button><input type="text" value=" " id="a4"></td>
            </tr>
            <tr>
                <td align="center"><button type="button" id="b" onClick="b0('b0', '1')">1</button><input type="text" value=" " id="b0"></td>
                <td align="center"><button type="button" id="b" onClick="b1('b1', '1')">1</button><input type="text" value=" " id="b1"></td>
                <td align="center"><button type="button" id="b" onClick="b2('b2', '1')">1</button><input type="text" value=" " id="b2"></td>
                <td align="center"><button type="button" id="b" onClick="b3('b3', '1')">1</button><input type="text" value=" " id="b3"></td>
                <td align="center"><button type="button" id="b" onClick="b4('b4', '1')">1</button><input type="text" value=" " id="b4"></td>
            </tr>
            <tr>
                <td align="center"><button type="button" id="c" onClick="c0('c0', '2')">2</button><input type="text" value=" " id="c0"></td>
                <td align="center"><button type="button" id="c" onClick="c1('c1', '2')">2</button><input type="text" value=" " id="c1"></td>
                <td align="center"><button type="button" id="c" onClick="c2('c2', '2')">2</button><input type="text" value=" " id="c2"></td>
                <td align="center"><button type="button" id="c" onClick="c3('c3', '2')">2</button><input type="text" value=" " id="c3"></td>
                <td align="center"><button type="button" id="c" onClick="c4('c4', '2')">2</button><input type="text" value=" " id="c4"></td>
            </tr>
            <tr>
                <td align="center"><button type="button" id="d" onClick="d0('d0', '3')">3</button><input type="text" value=" " id="d0"></td>
                <td align="center"><button type="button" id="d" onClick="d1('d1', '3')">3</button><input type="text" value=" " id="d1"></td>
                <td align="center"><button type="button" id="d" onClick="d2('d2', '3')">3</button><input type="text" value=" " id="d2"></td>
                <td align="center"><button type="button" id="d" onClick="d3('d3', '3')">3</button><input type="text" value=" " id="d3"></td>
                <td align="center"><button type="button" id="d" onClick="d4('d4', '3')">3</button><input type="text" value=" " id="d4"></td>
            </tr>
            <tr>
                <td align="center"><button type="button" id="e" onClick="e0('e0', '4')">4</button><input type="text" value=" " id="e0"></td>
                <td align="center"><button type="button" id="e" onClick="e1('e1', '4')">4</button><input type="text" value=" " id="e1"></td>
                <td align="center"><button type="button" id="e" onClick="e2('e2', '4')">4</button><input type="text" value=" " id="e2"></td>
                <td align="center"><button type="button" id="e" onClick="e3('e3', '4')">4</button><input type="text" value=" " id="e3"></td>
                <td align="center"><button type="button" id="e" onClick="e4('e4', '4')">4</button><input type="text" value=" " id="e4"></td>
            </tr>
            <tr>
                <td align="center"><button type="button" id="f" onClick="f0('f0', '5')">5</button><input type="text" value=" " id="f0"></td>
                <td align="center"><button type="button" id="f" onClick="f1('f1', '5')">5</button><input type="text" value=" " id="f1"></td>
                <td align="center"><button type="button" id="f" onClick="f2('f2', '5')">5</button><input type="text" value=" " id="f2"></td>
                <td align="center"><button type="button" id="f" onClick="f3('f3', '5')">5</button><input type="text" value=" " id="f3"></td>
                <td align="center"><button type="button" id="f" onClick="f4('f4', '5')">5</button><input type="text" value=" " id="f4"></td>
            </tr>
          <tr>
                <td align="center"><button type="button" id="g" onClick="g0('g0', '6')">6</button><input type="text" value=" " id="g0"></td>
                <td align="center"><button type="button" id="g" onClick="g1('g1', '6')">6</button><input type="text" value=" " id="g1"></td>
                <td align="center"><button type="button" id="g" onClick="g2('g2', '6')">6</button><input type="text" value=" " id="g2"></td>
                <td align="center"><button type="button" id="g" onClick="g3('g3', '6')">6</button><input type="text" value=" " id="g3"></td>
                <td align="center"><button type="button" id="g" onClick="g4('g4', '6')">6</button><input type="text" value=" " id="g4"></td>
            </tr>
            <tr>
                <td align="center"><button type="button" id="h" onClick="h0('h0', '7')">7</button><input type="text" value=" " id="h0"></td>
                <td align="center"><button type="button" id="h" onClick="h1('h1', '7')">7</button><input type="text" value=" " id="h1"></td>
                <td align="center"><button type="button" id="h" onClick="h2('h2', '7')">7</button><input type="text" value=" " id="h2"></td>
                <td align="center"><button type="button" id="h" onClick="h3('h3', '7')">7</button><input type="text" value=" " id="h3"></td>
                <td align="center"><button type="button" id="h" onClick="h4('h4', '7')">7</button><input type="text" value=" " id="h4"></td>
            </tr>
            <tr>
                <td align="center"><button type="button" id="i" onClick="i0('i0', '8')">8</button><input type="text" value=" " id="i0"></td>
                <td align="center"><button type="button" id="i" onClick="i1('i1', '8')">8</button><input type="text" value=" " id="i1"></td>
                <td align="center"><button type="button" id="i" onClick="i2('i2', '8')">8</button><input type="text" value=" " id="i2"></td>
                <td align="center"><button type="button" id="i" onClick="i3('i3', '8')">8</button><input type="text" value=" " id="i3"></td>
                <td align="center"><button type="button" id="i" onClick="i4('i4', '8')">8</button><input type="text" value=" " id="i4"></td>
            </tr>
            <tr>
                <td align="center"><button type="button" id="j" onClick="j0('j0', '9')">9</button><input type="text" value=" " id="j0"></td>
                <td align="center"><button type="button" id="j" onClick="j1('j1', '9')">9</button><input type="text" value=" " id="j1"></td>
                <td align="center"><button type="button" id="j" onClick="j2('j2', '9')">9</button><input type="text" value=" " id="j2"></td>
                <td align="center"><button type="button" id="j" onClick="j3('j3', '9')">9</button><input type="text" value=" " id="j3"></td>
                <td align="center"><button type="button" id="j" onClick="j4('j4', '9')">9</button><input type="text" value=" " id="j4"></td>
            </tr>
        </table>
        <button onClick="onPrint()">打印</button>
        <div id="myDiv"></div>
 </center>
</body>
<script type="text/javascript">
  // 全局变量
    var arr0 = [] // [a0,b0,c0,d0,e0,f0,g0,h0,i0,j0]
  var arr1 = [] // [a1,b1,c1,d1,e1,f1,g1,h1,i1,j1]
    var arr2 = [] // [a2,b2,c2,d2,e2,f2,g2,h2,i2,j2]
    var arr3 = [] // [a3,b3,c3,d3,e3,f3,g3,h3,i3,j3]
    var arr4 = [] // [a4,b4,c4,d4,e4,f4,g4,h4,i4,j4]
    var aArr0 = "", aArr1 = "", aArr2 = "", aArr3 = "", aArr4 = "";
    var bArr0 = "", bArr1 = "", bArr2 = "", bArr3 = "", bArr4 = "";
    var cArr0 = "", cArr1 = "", cArr2 = "", cArr3 = "", cArr4 = "";
    var dArr0 = "", dArr1 = "", dArr2 = "", dArr3 = "", dArr4 = "";
    var eArr0 = "", eArr1 = "", eArr2 = "", eArr3 = "", eArr4 = "";
    var fArr0 = "", fArr1 = "", fArr2 = "", fArr3 = "", fArr4 = "";
    var gArr0 = "", gArr1 = "", gArr2 = "", gArr3 = "", gArr4 = "";
    var hArr0 = "", hArr1 = "", hArr2 = "", hArr3 = "", hArr4 = "";
    var iArr0 = "", iArr1 = "", iArr2 = "", iArr3 = "", iArr4 = "";
    var jArr0 = "", jArr1 = "", jArr2 = "", jArr3 = "", jArr4 = "";

    function a0(val, num){ aArr0 = a(val, num) }
  function a1(val, num){ aArr1 = a(val, num) }
  function a2(val, num){ aArr2 = a(val, num) }
  function a3(val, num){ aArr3 = a(val, num) }
  function a4(val, num){ aArr4 = a(val, num) }

    function b0(val, num){ bArr0 = a(val, num) }
    function b1(val, num){ bArr1 = a(val, num) }
    function b2(val, num){ bArr2 = a(val, num) }
    function b3(val, num){ bArr3 = a(val, num) }
    function b4(val, num){ bArr4 = a(val, num) }

  function c0(val, num){ cArr0 = a(val, num) }
    function c1(val, num){ cArr1 = a(val, num) }
    function c2(val, num){ cArr2 = a(val, num) }
    function c3(val, num){ cArr3 = a(val, num) }
    function c4(val, num){ cArr4 = a(val, num) }

    function d0(val, num){ dArr0 = a(val, num) }
    function d1(val, num){ dArr1 = a(val, num) }
    function d2(val, num){ dArr2 = a(val, num) }
    function d3(val, num){ dArr3 = a(val, num) }
    function d4(val, num){ dArr4 = a(val, num) }

    function e0(val, num){ eArr0 = a(val, num) }
    function e1(val, num){ eArr1 = a(val, num) }
    function e2(val, num){ eArr2 = a(val, num) }
    function e3(val, num){ eArr3 = a(val, num) }
    function e4(val, num){ eArr4 = a(val, num) }

    function f0(val, num){ fArr0 = a(val, num) }
    function f1(val, num){ fArr1 = a(val, num) }
    function f2(val, num){ fArr2 = a(val, num) }
    function f3(val, num){ fArr3 = a(val, num) }
    function f4(val, num){ fArr4 = a(val, num) }

    function g0(val, num){ gArr0 = a(val, num) }
    function g1(val, num){ gArr1 = a(val, num) }
    function g2(val, num){ gArr2 = a(val, num) }
    function g3(val, num){ gArr3 = a(val, num) }
    function g4(val, num){ gArr4 = a(val, num) }

    function h0(val, num){ hArr0 = a(val, num) }
    function h1(val, num){ hArr1 = a(val, num) }
    function h2(val, num){ hArr2 = a(val, num) }
    function h3(val, num){ hArr3 = a(val, num) }
    function h4(val, num){ hArr4 = a(val, num) }

    function i0(val, num){ iArr0 = a(val, num) }
    function i1(val, num){ iArr1 = a(val, num) }
    function i2(val, num){ iArr2 = a(val, num) }
    function i3(val, num){ iArr3 = a(val, num) }
    function i4(val, num){ iArr4 = a(val, num) }

    function j0(val, num){ jArr0 = a(val, num) }
    function j1(val, num){ jArr1 = a(val, num) }
    function j2(val, num){ jArr2 = a(val, num) }
    function j3(val, num){ jArr3 = a(val, num) }
    function j4(val, num){ jArr4 = a(val, num) }

  // $('id')来实现document.getElementById('id') 
    function $() {
        var elements = new Array();
        for (var i = 0; i < arguments.length; i++) {
            var element = arguments[i];
            if (typeof element == 'string') element = document.getElementById(element);
            if (arguments.length == 1) return element;
            elements.push(element);
        }
        return elements;
    }

    function a(val, num){
        $(val).value == " " ? $(val).value=num : $(val).value=" "; // 再次点击清空
        return $(val).value;
    }

    function onPrint() {
        arr0 = toStarts(aArr0, bArr0, cArr0, dArr0, eArr0, fArr0, gArr0, hArr0, iArr0, jArr0);
        arr1 = toStarts(aArr1, bArr1, cArr1, dArr1, eArr1, fArr1, gArr1, hArr1, iArr1, jArr1);
        arr2 = toStarts(aArr2, bArr2, cArr2, dArr2, eArr2, fArr2, gArr2, hArr2, iArr2, jArr2);
        arr3 = toStarts(aArr3, bArr3, cArr3, dArr3, eArr3, fArr3, gArr3, hArr3, iArr3, jArr3);
        arr4 = toStarts(aArr4, bArr4, cArr4, dArr4, eArr4, fArr4, gArr4, hArr4, iArr4, jArr4);
        // 至少选择两列
        if (arr0.length && (arr1.length || arr2.length || arr3.length || arr4.length)) {
            // console.log(1)
        } else if (arr1.length && (arr0.length || arr2.length || arr3.length || arr4.length)) {
            // console.log(2)
        } else if (arr2.length && (arr0.length || arr1.length || arr3.length || arr4.length)) {
            // console.log(3)
        } else if (arr3.length && (arr0.length || arr2.length || arr1.length || arr4.length)) {
            // console.log(4)
        } else if (arr4.length && (arr0.length || arr2.length || arr3.length || arr1.length)) {
            // console.log(5)
        } else {
            alert("至少选择两列中的数字")
            return false
        }
        // 某一列没有选择赋值为“*”
        arr0 = arr0.length ? arr0 : ["*"]
        arr1 = arr1.length ? arr1 : ["*"]
        arr2 = arr2.length ? arr2 : ["*"]
        arr3 = arr3.length ? arr3 : ["*"]
        arr4 = arr4.length ? arr4 : ["*"]
        var arr = [arr0, arr1, arr2, arr3, arr4];
        console.log(arr)
        $("myDiv").innerHTML = doExchange(arr).join("<br />"); // 网页换行
    }
    // 去空值
    function toStarts(a, b, c, d, e, f, g, h, i, j) {
        let list = [a, b, c, d, e, f, g, h, i, j]
        return list.filter(function (s) {
            return s && s.trim();
        })
    }
    // 返回组合的数组
  function doExchange(arr){
        var len = arr.length;
        // 当数组大于等于2个的时候
        if(len >= 2){
            // 第一个数组的长度
            var len1 = arr[0].length;
            // 第二个数组的长度
            var len2 = arr[1].length;
            // 2个数组产生的组合数
            var lenBoth = len1 * len2;
            //  申明一个新数组
            var items = new Array(lenBoth);
            // 申明新数组的索引
            var index = 0;
            for (var i=0; i<len1; i++) {
                for (var j=0; j<len2; j++) {
                    if(arr[0][i] instanceof Array){
                        items[index] = arr[0][i].concat(arr[1][j]);
                    }else{
                        items[index] = [arr[0][i]].concat(arr[1][j]);
                    }
                    index++;
                }
            }
            var newArr = new Array(len -1);
            for(var i=2;i<arr.length;i++) {
                newArr[i-1] = arr[i];
            }
            newArr[0] = items;
            return doExchange(newArr); // 递归
        }else{
            return arr[0];
        }
  }

    // 数组组合方法参考 https://www.cnblogs.com/linJie1930906722/p/6854517.html
</script>

<style>
input {
  width: 40px;
}
</style>

</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 公历2017年3月2日。还差半个月不到,是我26岁的公历生日。都说,女人一旦过了25岁,像是迈过了一道坎,与青春靓...
    夜里飞行的猫阅读 347评论 1 2
  • 记者去采访一位九十三岁的老寿星,希望他能讲讲长寿的秘诀。老寿星说:“我不抽烟、也不喝酒、从来都不乱发脾气”,正说着...
    梓毓爸阅读 210评论 0 0
  • 记得多年前看过的一本书《刺猬的优雅》,里面的主人公是一位身材臃肿,头发凌乱,其貌不扬且孀居多年的门房老太荷妮...
    希茉ximo阅读 608评论 0 1
  • 我从小有个愿望就是希望长大之后当一名优秀的中学老师。我出生于教师家庭。从我懂事开始父母从早上一起去学校到晚...
    夜空守望者1126阅读 353评论 1 1
  • 知行合一 两日前,突如其来的兴致或说决心,留下段现在看来不甚有味道的文字。不过倒能多少记录当时的心情。 文字写下次...
    3e7598d49cbc阅读 259评论 0 0