我工作的一個腳本來分級,通過比較兩個陣列的用戶響應。 (這是一個測驗,看他們如何很好地知道信息。)我已經有一些我需要的代碼,比如讓用戶響應小寫並分割它。我需要的是找出差異/錯誤的數量。例如:使用JavaScript級用戶的響應(比較兩個陣列)
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));
在這個特殊的例子,運行我正在尋找的函數將返回用戶做出5個錯誤(他們省略「快」,補充「上」,「和」 ,「真的」,並且將「狗」改爲「貓」)。如你所見,這兩個陣列的長度可能不同。
有誰知道如何處理呢?我想這可能是一個循環,如:
for (x in correctanswer) {
// compare correctanswer[x] to useranswer[x]... not sure how exactly. Seems tricky...
}
謝謝你看這個!我見過約翰Resig的差異溶液(http://ejohn.org/projects/javascript-diff-algorithm/)以及其他類似的東西,甚至幾陣比較,但似乎沒有什麼,因爲我發現返回的所有分歧,而我想看看有多少差異存在是那些工作。再次感謝您的關注,並請讓我知道任何問題。
更新:非常感謝Magnar的答案!它工作完美。
Magnar - 謝謝!我想這就是它......所以我會傳遞數組值而不是字符串,就像他們在文章中所做的那樣? – Alex
是的,而不是字符,你會使用數組值;的話。 – Magnar
非常感謝您的幫助!我還不太擅長JavaScript,但我會盡力從這裏拿走它。如果您對如何實施有任何建議,請告訴我。我將把這標記爲公認的答案。 – Alex