开发者社区> 问答> 正文

用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
a1b2=>"24342";
.
.
.
a10*b10=>"25565457";

都需要打印出不同的结果,具体应该怎么做呢?用怎么去存储和获取这些结果呢?

展开
收起
小旋风柴进 2016-03-26 08:41:34 1773 0
1 条回答
写回答
取消 提交回答
  • 如果有N个问题,那么构建一个N维数组,通过查表计算arrselect_1[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的对象字面量的方式来做。

    2019-07-17 19:15:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载