如何在javascript中将一系列提交的测验答案与一组正确答案进行比较

时间:2016-10-24 21:22:22

标签: javascript arrays comparison underscore.js

我已经建立了一个多项选择测验。有些问题只有一个正确答案(使用无线电输入),有些问题有正确答案(复选框)。

当用户提交测验时,我会收集所有已选中的单选框和复选框,并将答案的ID推送到指向服务器的阵列。它看起来像这样:

userAnswers = [ '1c', '2d', '3a', '3b', '3c', '3d', '4b', '5c', '5d', '6d', '7c', '7d' ]

在服务器上,我有一个包含所有正确答案的数组。

correctAnswers = [ '1c', '2d', '3b', '3d', '4b', '5a', '5d', '6d', '7c', '7d' ]

我尝试使用下划线的_.difference功能来比较阵列,但这并没有给我一个完整的比较。

任何人都可以帮我设计一种评分这些测验的方法吗?我认为问题在于,有些问题有多个答案,所以从技术上讲,有人可以勾选所有4个复选框或只有一个,这使得比较它们变得更加困难。

也许使用数组并不是最好的方法,任何建议都值得赞赏!

1 个答案:

答案 0 :(得分:1)

  

使用数组可能不是最好的方法

是的,你真的应该使用适当的数据结构:

"

您也可以将一个对象用于“命名”问题(而不是将它们编入索引),并且可能删除数组包装器以用于单选问题,但我认为数组因为它们的简单性而存在争议。

如果您想使用原始格式作为输入(例如,因为它更容易键入或您的服务器不支持嵌套URL查询参数),您可以轻松地将其转换为嵌套数组。

将结果与正确答案进行比较问题的解答应该是微不足道的。