2015-04-24 154 views
-1

我正在寫一些JavaScript,以從1到9的9個數字組成的數組出現故障,並以10-1的字符串形式返回倒計時。JavaScript倒計時循環

例如:

輸入: [4,9,3,10,6,8,2,7,1,5]。

輸出:「10 9 8 7 6 5 4 3 2 1 1 liftoff!」

的JavaScript測試:

Test.assertEquals(liftoff([2, 8, 10, 9, 1, 3, 4, 7, 6, 5]),"10 9 8 7 6 5 4 3 2 1 liftoff!") 

JavaScript代碼:

function liftoff(instructions){ 

    var countdown = ""; 
    var start = 10; 

    for (start; start >= 1; start--) { 

    for (var i = 0; i < instructions.length; i++) { 

     if (instructions[i] == start) { 
     var count = instructions[i].toString(); 
     countdown += count + " "; 
     } 

    } 

    } 

    countdown += " liftoff!"; 
    console.log(countdown); 
} 

我得到的錯誤:

Expected: 10 9 8 7 6 5 4 3 2 1 liftoff!, instead got: undefined 

爲什麼不確定

+0

什麼'指令=升空[4 ,9,3,10,6,8,2,7,1,5]是什麼意思? – ruakh

+0

問題是什麼?你曾經稱過這個功能嗎?任何錯誤? – charlietfl

+0

他似乎想要數值排序,並保持在它的末尾 –

回答

4
function liftoff(instructions) { 
    return instructions 
    // sort into correct order 
    .sort(function(a, b){ 
    return b - a; 
    }) 
    // convert into string with spaces 
    .join(' ') + 
    // add 'lift off! 
    ' lift off!'; 
} 
+0

不要做OP的說什麼,因爲後面提到的輸入是1-9,倒計數從10降到1.但是..這也沒有多大意義,所以我會給出與你相同的答案。 –

0

這裏是多一個選擇,給你你想要的東西:

HTML

<!DOCTYPE Html /> 
<html> 
    <head> 
     <title></title> 
    </head> 
    <body> 
     <input type="button" value="Countdown" id="btnCountdown"/> 
     <script type="text/javascript" src="theJS.js"></script> 
    </body> 
</html> 

的JavaScript

var countdown = document.getElementById("btnCountdown"); 
var instructions = [5, 3, 2, 6, 4, 1, 9, 7, 8]; 
countdown.onclick = function() { 
    var sortedInstructions = instructions.sort(); 

    for (var i = instructions.length - 1; i >= 0; i--) { 
     var text = document.createTextNode(sortedInstructions[i]); 
     var el = document.createElement("P"); 
     el.appendChild(text); 
     document.body.appendChild(el); 

     if (i == 0) { 
      var liftOff = document.createTextNode("Lift Off!"); 
      var lastEl = document.createElement("P"); 
      lastEl.appendChild(liftOff); 
      document.body.appendChild(lastEl); 
     } 
    } 
}