Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用回调函数Javascript在屏幕上延迟打印/重复数组元素_Javascript_Arrays_Callback_Settimeout_Delay - Fatal编程技术网

使用回调函数Javascript在屏幕上延迟打印/重复数组元素

使用回调函数Javascript在屏幕上延迟打印/重复数组元素,javascript,arrays,callback,settimeout,delay,Javascript,Arrays,Callback,Settimeout,Delay,我正在尝试打印给定的数组单元格,每次打印之间每个元素有2秒的延迟 通过使用回调函数,但我无法使其工作。 取而代之的是,它会在2秒钟后将它们全部打印在一起 代码如下: var words = ["horse","pig","fish","lion"] var time function display(callback){ time = setTimeout(typing, 2000); } function typing(){ for (var i=0; i<words

我正在尝试打印给定的数组单元格,每次打印之间每个元素有2秒的延迟 通过使用回调函数,但我无法使其工作。 取而代之的是,它会在2秒钟后将它们全部打印在一起

代码如下:

var words = ["horse","pig","fish","lion"]
var time

function display(callback){
    time = setTimeout(typing, 2000);
}

function typing(){
    for (var i=0; i<words.length; i++)
        document.write(words[i])
}
display(typing);
function display(callback) {
   time = setTimeout(typing, 1000)
}
function typing(a,b) {
   var aInput = prompt("Please enter a input");
   aInput = a
   var bInput = prompt("Please enter b input");
   bInput = b
     if (a === int)
       for (i=0; i<a.length; i++)
          alert(b)
   else 
      alert("Not valid Input")
    }

display(typing);
var words=[“马”、“猪”、“鱼”、“狮子”]
变量时间
函数显示(回调){
时间=设置超时(键入,2000);
}
函数类型(){

对于(var i=0;i,从外观上看,你应该做这部分:

var aInput = prompt("Please enter a input");
aInput = a
var bInput = prompt("Please enter b input");
bInput = b
之前:

time = setTimeout(typing, 1000)
然后将a和b参数发送到:

typing(a,b)

如果你这样做,它应该会工作。

从外观上看,你应该做这部分:

var aInput = prompt("Please enter a input");
aInput = a
var bInput = prompt("Please enter b input");
bInput = b
之前:

time = setTimeout(typing, 1000)
然后将a和b参数发送到:

typing(a,b)

如果你这样做,它应该会起作用。

回答你的第一个问题。所有的单词都在2秒后打印出来,因为for循环不会在每个循环中等待
setTimeout
的执行完成,因此它几乎立即运行所有的
setTimeout
,每个单词都会等待2秒,显然是fi同时抛光。你可以这样改变它

var words=[“马”、“猪”、“鱼”、“狮子”]
函数显示(){
设计数器=0;
常量间隔=设置间隔(()=>{
文件.书写(文字[计数器++);
if(计数器===字.长度){
间隔时间;
}
}, 2000);
}

显示()
回答第一个问题。所有单词在2秒后打印,因为for循环不会在每个周期中等待
setTimeout
的执行完成,因此它几乎立即运行所有
setTimeout
并等待2秒,显然是在同一时间完成。您可以像这样把它弄得乱七八糟

var words=[“马”、“猪”、“鱼”、“狮子”]
函数显示(){
设计数器=0;
常量间隔=设置间隔(()=>{
文件.书写(文字[计数器++);
if(计数器===字.长度){
间隔时间;
}
}, 2000);
}

display();
第二个代码有一些问题:

  • 您通过
    提示符
    获取输入,因此无需将任何参数传递给
    键入
  • 由于上述原因,a和b未定义。因此,
    aInput=a
    bInput=b
    没有意义。相反,将aInput和bInput的值分别存储在a和b中
  • if(a===int)
    语法错误。JavaScript中没有int这样的东西。如果要检查a是否是数字,请使用
    isNaN(a)
  • if语句
    中的
    for循环
    必须用{}包装,因为它有多行
  • 这应该很好:

    function display(callback) {
       time = setTimeout(typing, 1000)
    }
    
    function typing() {
       var aInput = prompt("Please enter a input");
       var a = Number(aInput); 
       var bInput = prompt("Please enter b input");
       var b = bInput;
         if (!isNaN(a)){
           for (var i=0; i<a; i++){
              alert(b);
            }
        }
       else {
          alert("Not valid Input")
        }
    }
    
    display(typing);
    
    函数显示(回调){
    时间=设置超时(键入,1000)
    }
    函数类型(){
    var aInput=提示(“请输入输入”);
    var a=数字(输入);
    var bInput=提示(“请输入b输入”);
    var b=投入产出;
    如果(!isNaN(a)){
    
    对于(var i=0;i而言,第二个代码有一些问题:

  • 您通过
    提示符
    获取输入,因此无需将任何参数传递给
    键入
  • 由于上述原因,a和b未定义。因此,
    aInput=a
    bInput=b
    没有意义。相反,将aInput和bInput的值分别存储在a和b中
  • if(a===int)
    语法错误。JavaScript中没有int这样的东西。如果要检查a是否是数字,请使用
    isNaN(a)
  • if语句
    中的
    for循环
    必须用{}包装,因为它有多行
  • 这应该很好:

    function display(callback) {
       time = setTimeout(typing, 1000)
    }
    
    function typing() {
       var aInput = prompt("Please enter a input");
       var a = Number(aInput); 
       var bInput = prompt("Please enter b input");
       var b = bInput;
         if (!isNaN(a)){
           for (var i=0; i<a; i++){
              alert(b);
            }
        }
       else {
          alert("Not valid Input")
        }
    }
    
    display(typing);
    
    函数显示(回调){
    时间=设置超时(键入,1000)
    }
    函数类型(){
    var aInput=提示(“请输入输入”);
    var a=数字(输入);
    var bInput=提示(“请输入b输入”);
    var b=投入产出;
    如果(!isNaN(a)){
    
    对于(变量i=0;isetTimeout)(键入,2000)表示在调用
    setTimeout
    后2秒运行
    键入
    。因此,元素在2秒后一起打印。您必须在循环中调用
    seTimeout
    函数,以便每2秒打印数组元素。是否必须使用回调函数?此回调函数应包含哪些内容是吗?回调甚至没有被使用。你可以使用它或…取出它?不幸的是,回调必须被使用。它不必包含特定的内容。我两个月前开始编写代码,我知道有些事情可能不完美,我很抱歉。setTimeout(键入,2000)表示在调用
    setTimeout
    后2秒运行
    键入
    。因此,元素在2秒后一起打印。您必须在循环中调用
    seTimeout
    函数,以便每2秒打印数组元素。是否必须使用回调函数?此回调函数应包含哪些内容是吗?回调甚至没有被使用。你可以使用它或者…取出它?不幸的是,回调必须被使用。它不必包含特定的内容。我两个月前开始编写代码,我知道有些事情可能不完美,我很抱歉。我想这是某种家庭作业?下一部分可能是在你收到回调之前ack工作正常。我假设这是一个家庭作业?下一部分可能是让回调正常工作。必须有一个回调函数,但thanks@ChrisA.有一个回调函数,虽然是匿名的。必须有一个回调函数,但是thanks@ChrisA.有一个回调,alt尽管是匿名的。