我正在用Javascript編寫一個程序,它將偶數和奇數分開,將它們放入數組中,添加數字的總和並找到平均值。對數字數據的驗證Javascript
我有一個問題,不允許零不算。由於它添加到數組中,並且當用戶輸入6+6
時,求和值爲12
,由於陣列中存在額外的0
,因此平均值計算爲4
。
反正有沒有讓零計數?以下是我迄今爲止..
var evenarray = [];
var oddarray = [];
var avgEven = 0;
var avgOdd = 0;
var isValid;
function numberFunction(){
do
{
var numbers = prompt("Please enter numbers. Enter empty string to exit.");
if(numbers % 2 == 0)
{
evenarray.push(numbers);
var sumEven = 0;
for (var i=0; i < evenarray.length; i++)
{
sumEven = sumEven + Number(evenarray[i]);
}
var avgEven = sumEven/evenarray.length;
//alert("even");
}
if(numbers % 2 !== 0)
{
oddarray.push(numbers);
var sumOdd = 0;
for (var i=0; i < oddarray.length; i++)
{
sumOdd = sumOdd + Number(oddarray[i]);
}
var avgOdd = sumOdd/oddarray.length;
//alert("odd");
}
//if(isNaN(numbers)){
//alert("Only numeric data only");
//}
}
while(numbers !== "");
零從哪裏來?甚至當你試圖計算它時,evenar看起來像什麼?此外,你應該使用'parseInt'而不是'Number'來確保值是數字,但是,你只允許將數字推入數組,所以你甚至不需要檢查... – tkone
Can你發佈一個輸入和輸出的例子,並在這裏重現問題http://jsfiddle.net? – elclanrs
爲了排除'0',爲什麼不爲'0'創建一個過濾器。 'if(numbers%2 == 0 && numbers!== 0)'和'if(numbers%2!== 0 && numbers!== 0)' –