这个数组我做错了什么?

时间:2014-11-05 20:24:20

标签: javascript arrays

好的,尝试将数组放在一起并按升序排列。我看的越多,我就越迷惑自己。警报显示为“未定义”。我在俯瞰什么?

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 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

document.write()中取出generate()来电,在HTML文档中打印一个数字,直接将其分配给您的数组。您已将该打印件的结果分配给您的阵列,这绝对不是您想要的。