提示询问所需的行数.为什么我得到“未定义”在每一行的末尾

Prompt to ask desired amount of lines. Why do I get "undefined" at the end each line?

本文关键字:未定义 一行 为什么 提示      更新时间:2023-09-26

新手,急切地想让我的代码工作。我需要询问用户他们想要多少行"彩票券"。在提示符之后,代码按照我的要求逐行输出七个随机生成的数字。但是在每一行之后,我得到"undefined"。

为什么会这样?我知道我离你不远了……

var ask = prompt("How many lines?");
function numbers() {
    for(var i=0; i<7; i++) {
        var line = Math.floor(Math.random()*39)+1;
        document.write(line + ' ');
    }
}
for(var x=0; x<ask; x++) {
    document.write(numbers() + '<br>');
}

numbers()返回undefined,所以您不想输出它。试一试:

var ask = prompt("How many lines?");
function numbers() {
    for(var i=0; i<7; i++) {
        var line = Math.floor(Math.random()*39)+1;
        document.write(line + ' ');
    }
}
for(var x=0; x<ask; x++) {
    numbers(); 
    document.write('<br>');
}

这是因为你的numbers();函数没有任何定义的返回。

可以返回一个空字符串。return "";

var ask = prompt("How many lines?");
function numbers() {
    for (var i = 0; i < 7; i++) {
        var line = Math.floor(Math.random() * 39) + 1;
        document.write(line + ' ');
    }
    return "";
}
for (var x = 0; x < ask; x++) {
    document.write(numbers() + '<br>');
}

您正在编写调用numbers的返回值,然后是换行元素。

document.write(numbers() + '<br>');

numbers函数没有return语句,所以它返回undefined

你想:

numbers();
document.write('<br');

因为你的numbers函数没有返回任何东西

下面是一个将数字放入数组然后将它们连接起来的例子:

var ask = prompt("How many lines?");
function numbers() {
    var nums = [];
    for(var i=0; i<7; i++) {
        nums.push(Math.floor(Math.random()*39)+1);
    }
    return nums.join(' ');
}
for(var x=0; x<ask; x++) {
    document.write(numbers() + '<br>');
}

查看这里的工作示例:http://jsfiddle.net/6SHJE/1/