Я пишу программу в Javascript, которая разделяет четные и нечетные числа, помещает их в массив, добавляет сумму чисел и находит среднее значение.Проверка числовых данных Javascript
У меня возникла проблема, позволяющая не считать нулей. Поскольку его добавление к массиву и когда пользователь вводит 6+6
, сумма равна 12
, среднее значение вычисляется до 4
из-за дополнительного 0
в массиве.
Есть ли все-таки, чтобы не допустить нулей? Вот то, что я до сих пор ..
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 !== "");
Откуда же нуль? Как выглядит evenarray, когда вы пытаетесь его вычислить?Кроме того, вы должны использовать 'parseInt' вместо' Number', чтобы гарантировать, что значения являются числами, однако вы разрешаете только номера в массиве, поэтому вам даже не нужна эта проверка ... – tkone
Can вы публикуете пример ввода и вывода и воспроизводите проблему здесь http://jsfiddle.net? – elclanrs
Чтобы исключить добавление '0', почему вы не создаете фильтр для' 0' ex. 'if (numbers% 2 == 0 && numbers! == 0)' и 'if (numbers% 2! == 0 && numbers! == 0)' –