私は、2つの配列を比較することによってユーザーの応答を評価するスクリプトを作成しています。 (これは、彼らが情報を一語に一通りに知っているかどうかを知るためのクイズです。)私は既に、ユーザーの反応を小文字にして分割するようなコードをいくつか用意しています。私が必要とするのは、違いの数/間違いを見つけるものです。たとえば、ユーザが5つの誤りを犯したことを返すでしょう私が探している機能を実行しているこの特定の例ではJavaScriptを使用してユーザの応答を評価する(2つの配列を比較する)
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));
、(彼らは省略「クイック」、は、を「アップ」を追加「と」「本当に」は「犬」を「猫」に変更しました)。ご覧のとおり、2つの配列の長さが異なる場合があります。
これにアプローチする方法を知っている人はいますか?私はそれがおそらくループのようだと思っていた:
for (x in correctanswer) {
// compare correctanswer[x] to useranswer[x]... not sure how exactly. Seems tricky...
}
ありがとうございました!私はJohn Resigの差分解(http://ejohn.org/projects/javascript-diff-algorithm/)と他の同様のもの、さらには配列の比較もいくつか見てきましたが、見つかったものはすべての相違点を返すので、何も動作していないように見えました。もう一度、探していただきありがとうございました。私に質問があれば教えてください。
更新:答えはMagnarに感謝します。それは完璧に働いた。
マグナ - ありがとう!私はこれがそれだと思う...だから、記事のように文字列の代わりに配列の値を渡すだろうか? – Alex
はい、文字の代わりに配列の値を使用します。言葉。 – Magnar
ありがとうございました!私はまだJavaScriptでうまくいきませんが、私はここからそれを取ろうとします。実装方法に関するご提案がありましたら、お知らせください。私はこれを受け入れられた答えとしてマークします。 – Alex