有两道选择题,怎么根据不同的选择打印出不同的结果呢?
每道题有十个选项
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";
都需要打印出不同的结果,具体应该怎么做呢?用怎么去存储和获取这些结果呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
如果有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的对象字面量的方式来做。
评论
全部评论 (0)