javascript setTimeout()输出另存为变量
javascript setTimeout() outputs save as variables
我想将setTimeout()输出保存为变量。
例如:
function time() {
return (new Date).getTime();
}
for (var x=0; x<10; x++) {
setTimeout( time() , 2000);
}
上面的javascript代码以毫秒为单位每2秒返回一次时间,最多返回10次。
所以我们将得到10个输出。我想把这些输出保存为10个变量。所以我可以计算平均值等
请提供任何帮助,我们将不胜感激。
上面的javascript代码以毫秒为单位每2秒返回一次时间,最多返回10次。
不,不是。它立即调用time
,并将其返回值传递给setTimeout
(这对它没有任何作用),因为time
之后有()
。如果您有setTimeout(time, 2000)
,它会安排10次对time
的调用,但所有调用将在大约2秒后发生(而不是每两秒一次)。
所以我们将得到10个输出。我想将这些输出保存为10个变量
这就是数组的作用。:-)
var times = [];
function time() {
times.push((new Date).getTime());
if (times.length < 10) {
setTimeout(time, 2000);
}
}
setTimeout(time, 2000);
或者,如果由于某种原因无法直接修改time
:
var times = [];
function time() {
return (new Date).getTime();
}
function nextTime() {
times.push(time());
if (times.length < 10) {
setTimeout(nextTime, 2000);
}
}
setTimeout(nextTime, 2000);
替代循环可以是
编辑:根据您的一条评论,该脚本现在也输出平均值
var times = [];
var calculateAverage = function() {
var sum = times.reduce(function(sum, t) { return sum += t; }, 0);
console.log("Average:", sum/times.length);
};
var timer = setInterval(function() {
times.push((new Date).getTime());
if (times.length === 10) {
clearTimeout(timer);
calculateAverage();
}
}, 2000);
输出
平均:13766718982024
相关文章:
- 无法在本地计算机中将画布另存为图像
- 如何将 html5 画布另存为窗口 8 Metro 应用程序中的图像文件
- 试图制作一个“;另存为“;使用php's”;file_put_contents”;和javascript&quo
- Safari浏览器上的“强制另存为”对话框
- 强制浏览器打开“;另存为“;对话框
- execCommand('另存为',true,'data.csv');不在IE工作
- 更改音频速度,然后另存为新文件
- 将响应另存为文件
- 覆盖 HTML 画布上的“另存为”行为
- 如何在浏览器中触发另存为对话框,以便可以在内存中保存 json 数据
- 更改“将图像另存为”的操作以重定向到相应的网页
- 如何为图像创建“另存为”按钮
- 将 JavaScript 对象另存为字符串
- 如何定义图像'另存为'大小
- 使用javascript将画布另存为图像
- 嵌套画布另存为单个图像
- 如何在Chrome中禁用“另存为”对话框
- 将画布对象另存为图像-黑色背景
- jQuery 变量另存为 JavaScript var 意外行为
- javascript setTimeout()输出另存为变量