多选题评分算法 求指导

多选题评分规则
每个正确选项都有得分权重,选正确一个给该正确选项得分权重的分值,选错一个,则总分为0
假如:正确答案ABC,总分10分,权重分别为20%40%40%
提交答案ABC得(20%+40%+40%)*10=10分
提交答案AB得(20%+40%)*10=6分
提交答案ABD得0分
集思广益,如果可以请使用PHP作答
尚方宝剑之说
浏览 632回答 2
2回答

青春有我

functionselectScore(preAnswerScore,answer){lettotalScore=0;letnoScoreKey=[];lethasNoScoreKey=false;for(letkeyinpreAnswerScore){if(preAnswerScore[key]==0){noScoreKey.push(key);}}noScoreKey.map(item=>{if(answer.includes(item)){hasNoScoreKey=true;}});if(hasNoScoreKey){totalScore=0;}else{answer.map(item=>{totalScore+=preAnswerScore[item];});totalScore/=10;}returntotalScore;}letpreAnswerScore={a:20,b:40,c:40,d:0};letanswer=['c','b','d']console.log(selectScore(preAnswerScore,answer));}js走一波,考虑到你其他选择题也适用

侃侃尔雅

不会php,用一下js//选择的选项constselect=['a','b','d']//分数constscore={'a':20,'b':20,'c':60,'d':0}//根据所选得到分数如:abd的到20,20,0consta=select.map(x=>score[x])//如果a里面有0直接返回0否则reduce后得到分数total=a.includes(0)?0:a.reduce((total,i)=>total+(i*0.1),0)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript