Javascript测验结果计算/生成

Javascript quiz result calculation/generation

本文关键字:生成 计算 结果 Javascript      更新时间:2023-09-26

我为rails应用程序编写了一个javascript测试,每个问题只能在两个答案之间进行选择,我现在正试图扩大它的规模,以便有四个问题和四个结果页面,但到目前为止还没能使它发挥作用。有人能帮忙吗?我尝试过更改var计算,但到目前为止还没有成功。

function generateResult(answers) {
  var panda = bear = 0;
  for(var i =0; i < answers.length; i++){
    if(answers[i] == 1){
      bear++;
    }
    else {
      panda++;
    }
  }
    if(bear > panda) {
      return "sbear.html";
    }
    else if(bear > elephant) {
      return "sbear.html";
      }
     else if(bear > alpacha) {
      return "sbear.html";
      }
    else if(panda > bear) {
      return "sbear.html";
    }
    else if(panda > elephant) {
      return "sbear.html";
      }
     else if(panda > alpacha) {
      return "rpanda.html";
      }
     else if(alpacha > bear) {
      return "sbear.html";
    }
    else if(alpacha > panda) {
      return "sbear.html";
      }
     else if(alpacha > elephant) {
      return "alpach.html";
      }
    else {
      return "eleph.html"; 
    }
}
下面是另一个答案。我为我的假定答案列表工作
var answers = [1,2,3,4,2,2,2,3,4]
function generateResult(answers) {
    var animals = {
      1: 'bear',
      2: 'panda',
      3: 'elephant',
      4: 'alpacha'
    }
    var counts = [0,0,0,0];
    answers.forEach(function(answer){
      counts[answer-1]++;
    });
    return animals[counts.indexOf(Math.max(...counts))+1] + '.html';
}

结果:

genarateResult(答案);//'panda.html'

我不确定这些值是否是bear/panda/ephant/alpac(h)a的正确值,但您可以很容易地交换这些值。

function generateResult(answers) {
   // initialize ALL variables
   var panda = bear = elephant = alpacha = 0;
   for(var i =0; i < answers.length; i++){
      if(answers[i] == 1){ // assuming bear == 1
         bear++;
      }
      else if(answers[i] == 2) { // assuming panda == 2
         panda++;
      }
      else if(answers[i] == 3) { // assuming elephant == 3
         elephant++;
      }
      else { // assuming alpacha == 4
         alpacha++;
      }
   }
   if (bear > alpacha && bear > panda && bear > elephant) {
      return "sbear.html";
   }
   else if (alpacha > bear && alpacha > panda && alpacha > elephant) {
      return "alpach.html";
   }
   else if (panda > alpacha && panda > bear && panda > elephant) {
      return "rpanda.html";
   }
   else {
      return "eleph.html";
   }
}