-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 レベル: 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

これを行う方法はたくさんあります。それは閉鎖を伴います。javascript のスコープとクロージャについて読む必要があります。ここにそれを行う1つの方法があります。

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 に答える
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 に答える