为什么我的前面只提示我一次输入



我希望用户能够单击UP箭头5次,并且每次记录单独的启动时间和末日时。因此,控制台将返回他们响应的速度(msresponse)。

for (var i = 0; i < 5; i++) {
        var startTime = new Date().getTime();
        document.addEventListener("keydown", function touch(e) {
            switch (e.keyCode) {
                case 38: 
                    var endTime = new Date().getTime();
                    var msResponse = endTime - startTime;
                    console.log(msResponse);
                    document.removeEventListener("keydown", touch);
                    break;
            }
        })};

我希望循环会提示我5次点击向上箭头。每次设置新的启动时间和末日。

但是,我第一次单击向上箭头循环5次,并且随着每次循环迭代的方式,MSRESPONDE却略有增加。

如果有人可以帮助我更好地理解这一点,那真是太神奇了!

非常感谢!

用于循环用于重复和创建新变量。因为您的循环除了重复您的代码外没有使用其他循环,所以它看起来像这样:

var startTime = new Date().getTime();
    document.addEventListener("keydown", function touch(e) {
        switch (e.keyCode) {
            case 38: 
                var endTime = new Date().getTime();
                var msResponse = endTime - startTime;
                console.log(msResponse);
                document.removeEventListener("keydown", touch);
                break;
        }
    })};
/*Main problem you mentioned in your question was that time is only increasing ever so slightly. You are reassigning startTime = new Date() in your second iteration.*/

var startTime = new Date().getTime();
    document.addEventListener("keydown", function touch(e) {
        switch (e.keyCode) {
            case 38:
                var endTime = new Date().getTime();
                var msResponse = endTime - startTime;
                console.log(msResponse);
                document.removeEventListener("keydown", touch);
                break;
        }
    })};

我将在按下键时会创建一系列登录的时间,并在数组到达时解开键。

var startTime = new Date().getTime();
var endTime = [startTime];

window.addEventListener( "keydown", function touch(e) {
  if(endTime[5] !== undefined){
    window.removeEventListener( 'keydown', touch() );
  }else if ( e.keyCode === 38 ){
    var msResponses = new Date().getTime();
    endTime.push(msResponses);
  }
});

此代码基于时间创建数字数组,您可以从一开始就减去它们以获取时间,因为该功能被调用或彼此之间,以获取第一按下和第二次按下,第二和第三次。或其他。

最新更新