我希望用户能够单击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);
}
});
此代码基于时间创建数字数组,您可以从一开始就减去它们以获取时间,因为该功能被调用或彼此之间,以获取第一按下和第二次按下,第二和第三次。或其他。