2014-11-05 81 views
0

好吧,試圖將數組放在一起並按升序排列。我越看,我就越迷惑自己。警報提示爲「未定義」。我忽略了什麼?我在做什麼錯這個數組?

var random = new Array(); 
function main() { 
    generate(); 
    original(); 
    ascending(random); 
} 
function generate() { 
    document.write("Here are 25 Random Numbers:<br><br>"); 
    for (var i = 0; i < 25; i++) { 
     random[i] = document.write(Math.floor(Math.random() * 100) + ", "); 
    } 
} 
function original() { 
    var storage = ""; 
    for (var i = 0; i < 25; i++) { 
     storage += random[i] + ", "; 
    } 
    alert(storage); 
} 
function ascending(random) { 
    var tempArray = random; 
    var storage = ""; 
    random.sort(function (a, b) { 
     return a - b 
    }); 

    for (i = 0; i < 25; i++) { 
     storage += tempArray[i] + ", "; 
    } 
    alert("ASCENDING- " + storage); 
} 
+2

我看到一個變量和四個函數。我不明白你是怎麼打電話給他們的。 – j08691 2014-11-05 20:26:34

回答

6

無需document.write(不知道什麼是你想實現它),這就夠了:

random[i] = Math.floor(Math.random() * 100); 

之後,如果你需要將其轉換爲輸出字符串,只是加入吧:

random.join(","); 

這裏是你的generate功能:

var random = []; 
 

 
function generate() { 
 
    document.write("Here are 25 Random Numbers:<br><br>"); 
 
    for (var i = 0; i < 25; i++) { 
 
    random[i] = Math.floor(Math.random() * 100); 
 
    } 
 
} 
 

 
generate(); 
 
var str = random.join(', '); 
 
document.write(str);


注意:儘量avoid using document.write whenever you can

2

generate()中取出document.write()呼叫,該號碼向您的HTML文檔輸出一個數字,直接將其分配給您的陣列。您將該打印輸出的結果分配給您的陣列,這絕對不是您想要的。