我正在尝试用Javascript编写一个简单的程序,它将从用户那里获取10个输入并存储在一个数组中,然后在控制台中显示输入。
在我已编写的代码下面:
var name = [];
for(var i =0; i<=10; i++){
name[i]=(prompt('Enter your name'));
}
console.log(name);
但它没有显示任何值,我试图在for循环中控制i的值。
它在控制台中显示未定义。请帮我解决这个问题。谢谢。
答案 0 :(得分:2)
您必须在浏览器中在全局范围内运行该代码。 name
已在浏览器的全局命名空间中定义。它是当前窗口的名称(字符串)。您不能通过var
在全局范围内对其进行遮蔽,您必须使用范围函数或类似函数:
(function() {
var name = [];
for (var i = 0; i < 10; i++) { // Note 1
name[i] = prompt('Enter your name'); // Note 2
}
console.log(name);
})();
这里的教训:避免全球范围。 : - )
注1:如果您只想要10个循环,则需要< 10
,而不是<= 10
。
注意2:您不需要在作业的整个右侧放置()
。
答案 1 :(得分:-1)
请尝试以下代码:
var nm = new Array(10);
for(var i =0; i<10; i++){
nm[i]=prompt('Enter your name');
}
for(var i =0; i<10; i++){
document.write(nm[i] + '<br>');
}
我们无法使用变量名作为&#39; name&#39;。为了得到数组值,我们必须在数组中提供索引号,所以在上面使用for循环来获取所有值。
...谢谢