有两道选择题,怎么根据不同的选择打印出不同的结果呢? 每道题有十个选项 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维数组,通过查表计算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];
如果有N个问题,那么构建一个N维数组,通过查表计算arr[select_1][select_2][select_3][]...[select_n]来获得结果。
比如你的题目有2个问题,那么就构建一个二维数组,预先存储一个表。
赋值阶段可以区分一下数组是不是足够酥松
如果酥松的话就把有值的地方赋好就行了:
或者数据比较酥松,还可以构建一个switch逻辑,像这样:
调用还是一样的方式。
如果比较密,那么就用字面量的方式直接赋值吧:
嫌不好索引还可以用@kikong的对象字面量的方式来做。
这个就看你的选择组合的内在逻辑了,简单的就是把所有可能性放到一个映射对象中
例如
var answer={
"a1b1":"a1b1的结果描述~~~~",
"a1b2":"a1b2的结果描述~~~~"
};
在获取用户的选择结果后,如结果userAnswer="a1b1";
var userAnswerDesc=answer[userAnswer];