У меня есть два массива, один answers
, а другой correct
.
Оба они абсолютно одинаковы, единственная разница в том, что answers
заполняется пользовательским вводом, поэтому я хочу сравнить этот массив с массивом, в котором уже есть решения, чтобы я мог вернуть пользователю оценку.
Я сделал эту функцию, чтобы сравнить их:
const correct = [{
slot1: "item1",
slot2: "item2",
slot3: "item3",
slot4: "item4",
slot5: "item5",
slot6: "item6",
slot7: "item7",
slot8: "item8"
}];
var answers = {
slot1: "",
slot2: "",
slot3: "",
slot4: "",
slot5: "",
slot6: "",
slot7: "",
slot8: ""
};
function outputTest(){
//console.info(answers);
compare();
}
function compare(){
for (var[key, value] of Object.entries(correct)){
console.info(answers[key]);
console.info(correct[key]);
if (correct[key] == answers[key]){
score += 1;
}
}
console.info("total score= "+score);
}
outputTest();
Но похоже, что он не получает массив «ответов», он показывает «неопределенное», хотя я его тестировал, и раньше он правильно вставлял значения. Это правильный способ добиться этого?
🤔 А знаете ли вы, что...
JavaScript можно использовать для создания анимаций и игр на веб-страницах.
const correct = [{
slot1: "item1",
slot2: "item2",
slot3: "item3",
slot4: "item4",
slot5: "item5",
slot6: "item6",
slot7: "item7",
slot8: "item8"
}];
var answers = {
slot1: "",
slot2: "item2",
slot3: "",
slot4: "",
slot5: "",
slot6: "item6",
slot7: "item7",
slot8: ""
};
function outputTest() {
compare();
}
function compare() {
var total = Object.keys(answers).reduce(function(total, answerKey) {
if (answers[answerKey] === correct[0][answerKey]) {
total++;
}
return total;
}, 0);
console.info("total score = " + total);
}
outputTest();