• 三个数组拼接问题


    记录个小问题:

      js按规则将三个数组合成一个二维数组?

    var a1 = [1,2,3] ;
    var a2 = [4,5,6] ;
    var a3 = [7,8] ;
    //需要的结果:
    //[ [1,4,7],[1,4,8],[1,5,7],[1,5,8],[1,6,7],[1,6,8]... ] (共18个)

    for循环实现:

    var a1 = [1,2,3];
    var a2 = [4,5,6];
    var a3 = [7,8];
    
    for(var i = 0; i < a1.length; i ++) {
        for(var j = 0; j < a2.length; j ++) {
            for(var k = 0; k < a3.length; k ++) {
                var arr = [a1[i],a2[j],a3[k]];
                console.log(arr);
            }
        }
    }

    恰巧刚看过 while 循环,再走一个:

    var x = 0;
    var y = 0;
    var z = 0;
                
    while (a1[x]) {
        var arr = [a1[x], a2[y], a3[z]];
        console.log(arr);
        z ++;
        if(!a3[z]){z = 0; y ++;}
        if(!a2[y]){y = 0; x ++;}
    }

    ^o^

    再把 if 简化下:

    if(!a3[z]) z = 0, y ++;
    if(!a2[y]) z = 0, x ++;

     三目:

    !a3[z] ? (z = 0) | (y ++) : '';
    !a2[y] ? (y = 0) | (x ++) : '';
  • 相关阅读:
    第三次作业
    第二次作业
    第一次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    随笔
    第五次作业
    第四次作业
  • 原文地址:https://www.cnblogs.com/guofan/p/6814042.html
Copyright © 2020-2023  润新知