当我运行它并给出任何输入数字并按下按钮时它只提示一次。这是为什么?
这是我的代码:
<html>
<head> <title> Assignment CS101 </title> </head>
<script>
var number;
var ary;
var x;
function input()
{
prompt("Enter","");
var recieve=document.getElementById('demo');
number=recieve.value;
ary = new Array(recieve);
for(x=0; x<ary.length; x++)
{
ary[x]=parseInt(prompt("Enter " + x + " name: ",""));
}
}
</script>
<input type="text" size="25" id="demo"> <button onclick="input();"> Take input </button>
答案 0 :(得分:3)
问题在于你采用了“演示”的价值。这是一个字符串。并尝试使用该字符串创建一个新的数组。 for循环将运行一次,因为你将一个字符串放入其中。
ary = new Array(recieve);
应该使用&#39; parseInt()&#39;
number = parseInt(recieve.value,10);
ary = new Array();
for(var i = 0; i < number; i ++) {
答案 1 :(得分:0)
我仍然有点不清楚你的目的是什么,但尝试而不是循环遍历你的数组长度,循环遍历你的number
变量
for(x =0; x< number; x++)
{
ary[x] = parseInt(prompt("Enter " + x+ " name: ", ""),10);
}
答案 2 :(得分:0)
它只提示一次,因为您指的是ary[x]
循环中for
的长度。但是,在for
循环播放前的行上,您将ary
定义为new Array(receive)
,其长度为1。
您希望将ary
定义为函数外的new Array()
(因此它是全局的)。然后,您可以使用ary.push(receive)
将值推送到prompt
,假设您正在尝试执行此操作(不确定{for循环中{{1}}的用途是什么)
答案 3 :(得分:0)
你创建一个只包含一个元素的数组,因为输入中的值是一个带数字的字符串,但还没有数字。
function input() {
prompt("Enter","");
var number = parseInt(document.getElementById('demo').value,10);
ary = new Array();
for(x=0; x < number; x++) {
ary.push(parseInt(prompt("Enter " + x + " name: ","")),10);
}
}
答案 4 :(得分:0)
怎么样:
ary = new Array(number);
for(x=0; x<number; x++)
{
ary[x]=parseInt(prompt("Enter " + x + " name: ",""),10);
}