Используйте 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...
}

Спасибо, что посмотрели на это! Я видел решение для сравнения различий Джона Ресига ( http://ejohn.org/projects/javascript-diff-algorithm/ ) и другие подобные вещи, и даже несколько сравнений массивов, но ничего не работало с тех пор, как те, которые я нашел, возвращают все различия, тогда как я хочу увидеть, сколько различий есть. Еще раз спасибо за внимание и дайте мне знать о любых вопросах.

Обновление: Большое спасибо Магнару за ответ! Он работал отлично.

6
задан Alex 23 June 2011 в 22:28
поделиться