提示询问所需的行数。为什么我得到" undefined"在每一行的结尾?

时间:2014-03-26 20:34:18

标签: javascript undefined prompt

初学者,热切地试图让我的代码工作。 我需要询问用户他们想要多少行“彩票券”。在提示之后,代码按照我想要的方式逐行输出七个随机生成的数字。但在每一行之后,我得到“未定义”。

这是为什么?我知道我离我太远了......

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

因为您的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/

答案 2 :(得分:0)

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

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

numbers函数没有return语句,因此返回undefined

你想:

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

答案 3 :(得分:0)

这是因为您的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>');
}