【问题标题】:What am I doing wrong with this array?我对这个数组做错了什么?
【发布时间】:2014-11-06 04:38:43
【问题描述】:

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

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);
}

【问题讨论】:

  • 我看到一个变量和四个函数。我不明白你怎么称呼他们。

标签: javascript arrays


【解决方案1】:

不需要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 文档中,只需将其直接分配给您的数组。您正在将该打印输出的 result 分配给您的数组,这绝对不是您想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多