javascript setTimeout()输出另存为变量
我想将setTimeout输出保存为变量 例如:javascript setTimeout()输出另存为变量,javascript,Javascript,我想将setTimeout输出保存为变量 例如: function time() { return (new Date).getTime(); } for (var x=0; x<10; x++) { setTimeout( time() , 2000); } 上面的javascript代码每2秒返回时间(毫秒),最多返回10次 我们将得到10个输出。我想将这些输出保存为10个变量。所以我可以计算平均值等 如果您有任何帮助,我们将不胜感激 上面的javascript代码每2
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,setTimeout不会对它做任何事情,因为您有after time。如果您有setTimeouttime,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);
另一个循环可能是 编辑:根据您的一条评论,此脚本现在也输出平均值
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);
输出
平均值:1376671898024
将数组与一起使用。您的代码不会执行您描述的操作。但要回答您的问题,请使用单个数组而不是10个变量。谢谢。我在JSFIDLE上测试了您的代码。它不起作用。如果您还发布了如何计算平均时间以确认工作代码,那就太好了。@Vaibhav:对我来说很好:我使用了3而不是10,因为我不想等待20秒。
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);