有两道选择题,怎么根据不同的选择打印出不同的结果呢?每道题有十个选项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的对象字面量的方式来做。
慕的地10843
TA贡献1785条经验 获得超8个赞
这个就看你的选择组合的内在逻辑了,简单的就是把所有可能性放到一个映射对象中例如varanswer={"a1b1":"a1b1的结果描述~~~~","a1b2":"a1b2的结果描述~~~~"};在获取用户的选择结果后,如结果userAnswer="a1b1";varuserAnswerDesc=answer[userAnswer];
添加回答
举报
0/150
提交
取消