初学者,热切地试图让我的代码工作。 我需要询问用户他们想要多少行“彩票券”。在提示之后,代码按照我想要的方式逐行输出七个随机生成的数字。但在每一行之后,我得到“未定义”。
这是为什么?我知道我离我太远了......
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>');
}
答案 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>');
}