为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

拉莫斯之舞 2019-04-21 20:20:42
有两道选择题,怎么根据不同的选择打印出不同的结果呢?每道题有十个选项a数组是第一题的选项;b数组是第二题的选项arraya{a1,a2,a3,a4,...,a9,a10};arrayb{b1,b2,b3,b4,...,b9,b10};a1b1=>"123";//选择a1和b1的时候打印出123a1b2=>"24342";...a10*b10=>"25565457";都需要打印出不同的结果,具体应该怎么做呢?用怎么去存储和获取这些结果呢?
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

如果有N个问题,那么构建一个N维数组,通过查表计算arr[select_1][select_2][select_3][]...[select_n]来获得结果。
比如你的题目有2个问题,那么就构建一个二维数组,预先存储一个表。
赋值阶段可以区分一下数组是不是足够酥松
如果酥松的话就把有值的地方赋好就行了:
vararr=Array(2);
arr[0]=Array(10);
arr[1]=Array(10);
arr[0][0]="123"
arr[3][4]="123123"
arr[5][10]="21312"
functionshowAnswerForSelects(){
returnarr[arguments[0]][arguments[1]];
}
showAnswerForSelects(3,4)
->"123123"
showAnswerForSelects(7,5)
->undefined
或者数据比较酥松,还可以构建一个switch逻辑,像这样:
functionshowAnswerForSelects(){
varstr=arguments[0]+"-"+arguments[1];
switch(str){
case"0-1":return"123";
case"3-4":return"123123";
case"5-10":return"21312";
default:returnnull;
}
}
调用还是一样的方式。
如果比较密,那么就用字面量的方式直接赋值吧:
vararr=[
["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"]
];
functionshowAnswerForSelects(){
returnarr[arguments[0]][arguments[1]];
}
嫌不好索引还可以用@kikong的对象字面量的方式来做。
                            
查看完整回答
反对 回复 2019-04-21
?
慕的地10843

TA贡献1785条经验 获得超8个赞

这个就看你的选择组合的内在逻辑了,简单的就是把所有可能性放到一个映射对象中
例如
varanswer={
"a1b1":"a1b1的结果描述~~~~",
"a1b2":"a1b2的结果描述~~~~"
};
在获取用户的选择结果后,如结果userAnswer="a1b1";
varuserAnswerDesc=answer[userAnswer];
                            
查看完整回答
反对 回复 2019-04-21
  • 2 回答
  • 0 关注
  • 301 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信