公众号 - 答题小程序之选择答案

描述:后台传入正确答案选项,前端监听input的onchange事件,一旦选错,及时报错,否则跳转下一题

难点:用户如果是多选题,选择以后,要判断是否选对,选错直接报错信息并显示

解决方案:正确答案和用户答案(concat)合并在一起,再去重,最后判断 正确答案的数组长度是否小于去重后的长度

 

栗子:

 

 1      Array.prototype.distinct = function () {
 2             let arr = this,
 3                 i,
 4                 j,
 5                 len = arr.length;
 6             for (i = 0; i < len; i++) {
 7                 for (j = i + 1; j < len; j++) {
 8                     if (arr[i] == arr[j]) {
 9                         arr.splice(j, 1);
10                         len--;
11                         j--;
12                     }
13                 }
14             }
15             return arr;
16         };
17 
18 
19         // 后台传正确答案
20         let a = ['A', 'B', 'C'];
21         // 前台输入答案 - 通过监听input change事件
22         let b = ['A', 'B'];
23         
24         // 合并a数组、合并b数组
25         let c = a.concat(b);
26         // c去重复
27         let d = c.distinct();
28 
29         // 一旦a的长度小于合并后c的长度,就说明答案选错了!
30         if (a.length < c.length) {
31             console.log('小子,你选错了!');
32         } else {
33             console.log('小子,你选对了!');
34         }
35         
36         console.log(d);

 

posted @ 2018-10-16 17:06  Sunsin  阅读(1603)  评论(0编辑  收藏  举报