我正在编写一个脚本,通过比较两个数组来评估用户响应.(这是一个测验,看看他们对单词逐字逐句了解的信息.)我已经有了一些我需要的代码,比如将用户响应小写并拆分.我只需要找到差异/错误的数量.例如:
var correctanswer = ["The","quick","brown","fox","jumped","over","the","lazy","dog"];
var useranswer = ["The","brown","fox","jumped","up","and","over","the","really","lazy","cat"];
alert(counterrors(correctanswer, useranswer));
Run Code Online (Sandbox Code Playgroud)
在这个特殊的例子,运行我正在寻找的函数将返回用户做出5个错误(他们省略 "快",补充 "上升","和",和"真",而改为 "狗"到"猫").如您所见,两个阵列的长度可能不同.
有人知道如何处理这个问题吗?我在想它可能是一个循环:
for (x in correctanswer) {
// compare correctanswer[x] to useranswer[x]... not sure how exactly. Seems tricky...
}
Run Code Online (Sandbox Code Playgroud)
谢谢你看这个!我见过John Resig的差异解决方案(http://ejohn.org/projects/javascript-diff-algorithm/)和其他类似的东西,甚至是一些数组比较,但似乎没有任何工作,因为我找到的回归所有差异,而我想知道有多少差异.再次,感谢您的关注,请让我知道任何问题.
更新:非常感谢Magnar的答案!它工作得很好.