search

Home  >  Q&A  >  body text

javascript - 用js或jquery怎么根据不同的选择打印出不同的结果?

有两道选择题,怎么根据不同的选择打印出不同的结果呢?
每道题有十个选项
a数组是第一题的选项;b数组是第二题的选项
array a{a1,a2,a3,a4,...,a9,a10};
array b{b1,b2,b3,b4,...,b9,b10};
a1b1=>"123"; // 选择a1和b1的时候打印出123
a1
b2=>"24342";
.
.
.
a10*b10=>"25565457";
都需要打印出不同的结果,具体应该怎么做呢?用怎么去存储和获取这些结果呢?

PHPzPHPz2902 days ago405

reply all(2)I'll reply

  • 巴扎黑

    巴扎黑2017-04-10 15:10:57

    如果有N个问题,那么构建一个N维数组,通过查表计算arr[select_1][select_2][select_3][]...[select_n]来获得结果。
    比如你的题目有2个问题,那么就构建一个二维数组,预先存储一个表。

    赋值阶段可以区分一下数组是不是足够酥松

    如果酥松的话就把有值的地方赋好就行了:

    var arr = Array(2);
    arr[0] = Array(10) ;
    arr[1] = Array(10) ;
    
    arr[0][0] = "123"
    arr[3][4] = "123123"
    arr[5][10] = "21312"
    
    function showAnswerForSelects(){
        return arr[arguments[0]][arguments[1]] ;
    }
    
    showAnswerForSelects(3,4)
    -> "123123"
    showAnswerForSelects(7,5)
    -> undefined
    

    或者数据比较酥松,还可以构建一个switch逻辑,像这样:

    function showAnswerForSelects(){
        var str = arguments[0] + "-" + arguments[1] ;
        switch(str) {
            case "0-1": return "123" ;
            case "3-4": return "123123" ;
            case "5-10": return "21312" ;
            default: return null;
        }
    }
    

    调用还是一样的方式。

    如果比较密,那么就用字面量的方式直接赋值吧:

    var arr = [
        ["123123","12312","123123"..."234134"] ,
        ["123123","12312","123123"..."234134"] ,
        ["123123","12312","123123"..."234134"] ,
        ["123123","12312","123123"..."234134"] ,
        ["123123","12312","123123"..."234134"] ,
        ["123123","12312","123123"..."234134"] ,
        ["123123","12312","123123"..."234134"] ,
        ["123123","12312","123123"..."234134"] ,
        ["123123","12312","123123"..."234134"] ,
        ["123123","12312","123123"..."234134"]
    ];
    
    function showAnswerForSelects(){
        return arr[arguments[0]][arguments[1]] ;
    }
    

    嫌不好索引还可以用@kikong的对象字面量的方式来做。

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 15:10:57

    这个就看你的选择组合的内在逻辑了,简单的就是把所有可能性放到一个映射对象中
    例如
    var answer={
    "a1b1":"a1b1的结果描述~~~~",
    "a1b2":"a1b2的结果描述~~~~"
    };

    在获取用户的选择结果后,如结果userAnswer="a1b1";
    var userAnswerDesc=answer[userAnswer];

    reply
    0
  • Cancelreply