Tôi đang làm việc trên một kịch bản để đánh giá phản hồi của người dùng bằng cách so sánh hai mảng. (Đó là một bài kiểm tra để xem họ biết thông tin từng từ một cách rõ ràng như thế nào.) Tôi đã có một số mã mà tôi cần, như làm cho chữ thường phản ứng của người dùng và tách nó ra. Tất cả những gì tôi cần là cái gì đó để tìm ra số khác biệt/sai lầm. Ví dụ:Sử dụng JavaScript để đánh giá phản hồi của người dùng (so sánh hai mảng)
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));
Trong ví dụ cụ này, chạy chức năng tôi đang tìm kiếm sẽ trở lại mà người dùng đã chia sẻ 5 lỗi (họ bỏ qua "nhanh", thêm "lên", "và" và "thực sự" và đã thay đổi "chó" thành "mèo"). Như bạn có thể thấy, hai mảng có thể có độ dài khác nhau.
Có ai biết cách tiếp cận điều này không? Tôi đã nghĩ rằng nó có thể sẽ là một vòng lặp như:
for (x in correctanswer) {
// compare correctanswer[x] to useranswer[x]... not sure how exactly. Seems tricky...
}
Cảm ơn bạn đã xem xét điều này! Tôi đã thấy giải pháp khác của John Resig (http://ejohn.org/projects/javascript-diff-algorithm/) và những thứ tương tự khác, và thậm chí là một vài so sánh mảng, nhưng không có gì có hiệu quả vì những cái tôi tìm thấy trả về tất cả sự khác biệt, trong khi tôi muốn xem có bao nhiêu sự khác biệt. Một lần nữa, cảm ơn bạn đã tìm kiếm và vui lòng cho tôi biết về bất kỳ câu hỏi nào.
Cập nhật: Rất cám ơn Magnar đã trả lời! Nó hoạt động hoàn hảo.
Magnar - Cảm ơn! Tôi nghĩ rằng đây là nó ... Vì vậy, tôi sẽ vượt qua các giá trị mảng thay vì các chuỗi như họ đã làm trong bài viết? – Alex
Có, thay vì ký tự, bạn sẽ sử dụng các giá trị mảng; từ. – Magnar
Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn! Tôi chưa quá giỏi với JavaScript, nhưng tôi sẽ cố gắng lấy nó từ đây. Nếu bạn có bất kỳ đề xuất nào về cách triển khai, vui lòng cho tôi biết. Tôi sẽ đánh dấu đây là câu trả lời được chấp nhận. – Alex