2016-07-27 55 views
0

我爲我的rails應用程序寫了一個JavaScript測驗,其中每個問題只有兩個答案之間有一個選擇,我現在試圖擴展它,以便有四個問題和四個結果頁面,但迄今爲止還無法實現。任何人都可以幫忙嗎?我試過改變var計算,但迄今還沒有成功。Javascript測驗結果計算/代

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"; 
    } 
} 
+0

您能否分享'elephant'和'alpacha'(羊駝?)的初始化? – Hodrobond

+0

我目前沒有它了,以前我沒有用過它,但我不確定如何繼續 – Djangert

+0

@Djangert那麼你需要定義它們。你不能指望代碼與未聲明的變量一起工作。 –

回答

0

我不知道這些熊/熊貓/大象/ ALPAC(八)的正確的價值觀,但你可以換那些很容易。

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"; 
    } 
} 
1

這是另一個答案。我曾爲我應該回答的列表

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'