2014-11-05 84 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文档输出一个数字,直接将其分配给您的阵列。您将该打印输出的结果分配给您的阵列,这绝对不是您想要的。