-1
我正在從事學校的這項工作。這個程序的工作原理是這樣的:你用逗號分隔一些數字,然後程序把這些值放在一個整數數組(parseInt())中,然後它調用計算函數,計算出最高數字,和,和差異。但事情是,程序認爲變量和是一個字符串,而不是一個int。所以我得到0 + 1 + 2 = 012的總和。這是純粹的JavaScript btw。變量不會是一個整數javascript
window.onload = start;
var arr = [];
var sum = 0;
var max;
var avg;
function start() {
document.getElementById('sub').onclick = getValues;
}
function getValues() {
var str = document.getElementById('input').value;
arr = str.split(",");
for (var i = 0; i < arr.length; i++) {
parseInt(arr[i]);
}
calculate(arr);
print();
}
function calculate(arr) {
var temp = arr[0];
sum = 0;
for (var i = 0; i < arr.length; i++) {
if (temp < arr[i]) {
temp = arr[i];
}
sum += arr[i];
}
max = temp;
avg = sum/arr.length;
}
function print() {
document.getElementById('div').innerHTML = "In the array of theese values: " + arr + ",<br>is " + max + " the biggest, " + sum + " is the sum, " + " and " + avg + " is the average.";
}
當通過'arr'迭代,你調用'parseInt'上的價值,但它從來沒有改變它的類型爲'number'。 –
'parseInt(arr [i])'沒有賦值給getValues()函數中的任何值,那麼您應該執行'arr [i] = parseInt(arr [i])'或者解析爲int值你需要它的地方 – Icepickle
在'parseInt'行放置一個斷點。執行後,檢查'arr [i]'的值。 – 2015-11-08 08:42:57