2011-09-22 56 views
0

我是JavaScript的新手,所以我決定開發一個應用程序,它應該顯示我住的地方的電車的時間表,因爲缺少關於官方網頁。Javascript函數返回數組中的固定值

我有幾個陣列與行的開始時間,作爲到達每個站的時間是相同的,我只需要將總分鐘添加到第一個小時。

有一種形式供用戶設置一個小時的範圍。所以,我的主要問題是「加法器();」函數應該迭代並打印數組中的所有值。而不是這樣做,它總是需要相同的索引,24,所以如果數組返回少於24索引,它不起作用。

這裏的HTML:

< INPUT TYPE = 「鍵」 類= 「提交」 值= 「投遞」 的onclick = 「呼叫者()」/>

JavaScript的:

function cropHours(i){ 

     if (i.substr(0,2) >= hora1user_recortada && i.substr(0,2) <= hora2user_recortada) { 
      horas.push(i); 
     } 
     return horas; 
} 

function adder() { 
    minInicio1 = horas[i].substr(0,2); 
    minInicio2 = horas[i].substr(3,2); 
    document.getElementById("test4").innerHTML = "---" + minInicio1+"_"+minInicio2; 
    y = parseInt(total) + parseInt(minInicio2); 
    document.getElementById("test5").innerHTML = "total vale "+total+"minInicio1 vale "+minInicio1+"... minInicio2 vale "+minInicio2+"...Y vale "+y; 
    html += "<td>"+y+"</td>"; 
    document.getElementById("horario").innerHTML = html; 
} 

這是另一個功能的一部分:

if (platform == 1) { 
    for (var j = 0; j <= indexorigen; j++) { 
     total += mins1[j]; 
    } 
    for (var j = 0; j <= indexdestino; j++) { 
     total2 += mins1[j]; 
    } 
    if (today !== "Sábado" || today !== "Domingo") { 
     for each (var i in horainiciolaboral1) { 
      cropHours(i); 
      //adder(horainiciolaboral1); 
     } 
    } else { 

     for each (var i in horainiciofinde1) { 
      cropHours(i); 
     } 
    } 
} else { 
    for (var x = 0; x <= indexorigen; x++) { 
      total += mins2[x]; 
     } 
     for (var x = 0; x <= indexdestino; x++) { 
      total2 += mins2[x]; 
     } 
    if (today !== "Sábado" || today !== "Domingo") { 
     for each (var i in horainiciolaboral2) { 
      cropHours(i); 
     } 
    } else { 
     for each (var i in horainiciofinde2) { 
      cropHours(i); 
     } 
    } 
} 

/*for (var i = 0; i <= horainiciolaboral1.length; i++) { 
    adder(horainiciolaboral1); 
}*/ 

//horario = horas.slice(11); 
for each (var i in horas) { 
    adder(); 
} 
document.getElementById("test6").innerHTML = horas; 
document.getElementById("test3").innerHTML = total + "----" + total2; 

// ****************************************** 
// ** FUNCTION WHICH CALLS EVERY FUNCTION ** 
// ****************************************** 
// STARTS 
function caller() { 
cleaner(); 
retrieve_origen(); 
retrieve_destino(); 
getIndex(); 
sumMinutes(); 
getHours(); 
} 

這是問題:每個(var i在horas中) {adder(); }

在此先感謝您。

+0

也許你應該通過'i'直接的功能? ('函數加法器(i){...}') – Howard

回答

1

通行證iadder()作爲參數:

adder(i); 

...並把它定義爲在函數中的參數:

function adder(i) { 
    //... 
+0

謝謝你的回答。 我試過了,但現在說'var horas [i]是未定義的。 99行' 我找不到爲什麼這麼說。如果你想檢查完整的代碼,我複製到pastebin,在這裏[鏈接] http://pastebin.com/dgfFnqKZ 謝謝你們,Senad和@Howard – aesptux

+0

我認爲這是我的錯,我有for循環for adder();內部其他功能。我把它放在外面,現在它什麼都不做。它既不給錯也不行 – aesptux