在我的函数中它运行document.write 10倍我指定的

时间:2018-09-27 04:37:54

标签: javascript loops

当我尝试运行

 function thing(number) {
  for (i = 1; i < number+1; i++){
      document.write(i + ' ');
  }
}	
var otherthing = prompt("");
thing(otherthing);

当其循环document.write(i);时,其循环次数是指定次数的10倍以上 我有点乱了,无法理解。我对JavaScript也很陌生,并且愿意接受其他任何提示或反馈

4 个答案:

答案 0 :(得分:2)

告诉我这是否适合您。

function thing(aNumber) { 
  aNumber = Number(aNumber) + 1;
  for (i = 1; i < aNumber; i++){ 
    document.write(i + ' ');

    }
}   
var otherthing = prompt(""); 
thing(otherthing);

编辑:之所以无法使用该代码,是因为提示符下的输入被解释为字符串,而不是数字。因此Number(aNumber)部分实际上是使此编辑起作用的原因,因为它明确告诉JavaScript变量是数字,而不是字符串。另外,我怀疑'number'是不能用于变量的关键字,就像您不能将'function'或'var'用作变量一样。所以我将其更改为“ aNumber”而不是“ number”。

答案 1 :(得分:1)

尝试此操作,您会忘记将其解析为整数

function thing(number) {
            for (i = 1; i < number+1; i++){
                document.write(i + ' ');
            }
        }   
var otherthing = parseInt(prompt(""));
thing(otherthing);

否则,您也可以这样使用

function thing(number) {
            for (i = 1; i < number+1; i++){
                document.write(i + ' ');
            }
        }   
var otherthing = prompt("");
thing(+otherthing);

答案 2 :(得分:0)

Jaromanda X所述,函数事物上的数字参数的数据类型是字符串,而不是int,float或其他数字数据类型。因此,您需要先将其更改为数字。像这样:

function thing(number) {
    for (let i = 1; i < Number(number)+1; i++){
        document.write(i + ' ');
    }
}   
var otherthing = prompt("");
thing(otherthing);

答案 3 :(得分:0)

使用Number将字符串转换为数字:

for (i = 1; i < Number(number) + 1 ; i++) {

function thing(number) {
  for (i = 1; i < Number(number) +1 ; i++) {
    document.write(i + ' ');
  }
}	

var otherthing = prompt("");
thing(otherthing);