javascript - 用js或jquery怎么根据不同的选择打印出不同的结果?
PHPz
PHPz 2017-04-10 15:08:57
0
2
354

有两道选择题,怎么根据不同的选择打印出不同的结果呢?
每道题有十个选项
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";
都需要打印出不同的结果,具体应该怎么做呢?用怎么去存储和获取这些结果呢?

PHPz
PHPz

学习是最好的投资!

reply all(2)
巴扎黑

如果有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的对象字面量的方式来做。

刘奇

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

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

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!