描述:后台傳入正確答案選項,前端監聽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);
