-1

我正在尝试将函数的结果相加,每次调用该函数后,这是我的代码:

function computetime(result) {
var time=0;
var mytravelroute=result.routes[0];
for (i = 0; i < mytravelroute.legs.length; i++) {
    time += mytravelroute.legs[i].duration.value;
}

var totalSec = time;

我想在每次调用函数时添加“时间”变量。现在“时间”变量每次都会被覆盖,我每次都需要捕获该值。

有任何想法吗?免责声明:Prog lvl:peon。

4

4 回答 4

2
var time=0;
function computetime(result) {

var mytravelroute=result.routes[0];
for (i = 0; i < mytravelroute.legs.length; i++) {
    time += mytravelroute.legs[i].duration.value;
}

var totalSec = time;
于 2013-09-10T17:49:40.677 回答
1

看起来你只需要一个全局变量。

var totalSec;

function computetime(result) {
  var mytravelroute=result.routes[0];
  for (i = 0; i < mytravelroute.legs.length; i++) {
    totalSec += mytravelroute.legs[i].duration.value;
  }
于 2013-09-10T17:51:13.673 回答
1

你可以这样做:

function computetime(result) {
    computetime.time = computetime.time || 0;
    var mytravelroute = result.routes[0];
    for (i = 0; i < mytravelroute.legs.length; i++) {
        computetime.time += mytravelroute.legs[i].duration.value;
    } 
}
于 2013-09-10T17:51:22.333 回答
1

有很多方法可以做到这一点。它涉及关闭。您应该阅读 javascript 中的作用域和闭包。这是一种方法。

var tracker = {
   time: 0
   computetime: function computetime(result) {
       var mytravelroute=result.routes[0];
       for (i = 0; i < mytravelroute.legs.length; i++) {
           tracker.time += mytravelroute.legs[i].duration.value;
       }
       return tracker.time;
    }
}

tracker.computetime(result)
于 2013-09-10T17:52:35.210 回答