2013-10-03 17 views
0

我有以下的JavaScript。如何讓這個更輕量級的JavaScript?

有沒有讓這個更簡單。它看起來很重?

它基本上採取的12所輸入的值,並改變陣列基於這些值

function updatechart(){ 
    var inputnoinsulation1 = document.getElementById("noinsulation1").value 
    var inputnoinsulation2 = document.getElementById("noinsulation2").value 
    var inputnoinsulation3 = document.getElementById("noinsulation3").value 
    var inputnoinsulation4 = document.getElementById("noinsulation4").value 
    var inputnoinsulation5 = document.getElementById("noinsulation5").value 
    var inputnoinsulation6 = document.getElementById("noinsulation6").value 
    var inputnoinsulation7 = document.getElementById("noinsulation7").value 
    var inputnoinsulation8 = document.getElementById("noinsulation8").value 
    var inputnoinsulation9 = document.getElementById("noinsulation9").value 
    var inputnoinsulation10 = document.getElementById("noinsulation10").value 
    var inputnoinsulation11 = document.getElementById("noinsulation11").value 
    var inputnoinsulation12 = document.getElementById("noinsulation12").value 

    chart1data[0].NoInsulation = (parseInt(inputnoinsulation1)); 
    chart1data[1].NoInsulation = (parseInt(inputnoinsulation2)); 
    chart1data[2].NoInsulation = (parseInt(inputnoinsulation3)); 
    chart1data[3].NoInsulation = (parseInt(inputnoinsulation4)); 
    chart1data[4].NoInsulation = (parseInt(inputnoinsulation5)); 
    chart1data[5].NoInsulation = (parseInt(inputnoinsulation6)); 
    chart1data[6].NoInsulation = (parseInt(inputnoinsulation7)); 
    chart1data[7].NoInsulation = (parseInt(inputnoinsulation8)); 
    chart1data[8].NoInsulation = (parseInt(inputnoinsulation9)); 
    chart1data[9].NoInsulation = (parseInt(inputnoinsulation10)); 
    chart1data[10].NoInsulation = (parseInt(inputnoinsulation11)); 
    chart1data[11].NoInsulation = (parseInt(inputnoinsulation12)); 
+0

爲什麼我得到這個標記? – craig

+0

對於大多數人來說,這可能是一個基本的循環問題,但不要以爲OP可能會嘗試學習達到他的解決方案的最佳方式,因此不值得投票。 –

回答

5
for (var i = 0; i < 12; i++) 
    chart1data[i].NoInsulation = parseInt(document.getElementById("noinsulation" + (i + 1)).value); 

應該工作。

+0

'我<12「否則是正確的。我只是想寫同樣的答案。 –

+0

@SimonAndréForsberg是我的壞。 – Daniel

+1

int i? JavaScript沒有「int」。 – zvona

0
var i = 0, l = 12; 

for (;i<l;++i) { 
    var val = window.parseInt(document.getElementById("noinsulation"+ (i+1)).value, 10); 
    chart1data[i].NoInsulation = val; 
} 
0

試試這個:

var index = 0; 
while (index < 12) chart1data[index++].NoInsulation = 
    parseInt(document.getElementById("noinsulation" + index).value); 

此外,它始終是一個很好的做法,指定parseInt第二個參數(即基數)。在這種情況下,它不會有任何區別,但你應該養成這樣做的習慣:

var index = 0; 
while (index < 12) chart1data[index++].NoInsulation = 
    parseInt(document.getElementById("noinsulation" + index).value, 10); 

希望這會有所幫助。