Я думаю (главная) проблема в этой строке:
v1 = parseFloat(Math.pow(temp[i]-mean),2);
Должно быть:
v1 = Math.pow(parseFloat(temp[i])-mean),2);
Ваш код пытается использовать строку в temp[i]
в качестве числа и вычесть из нее mean
, а затем возвести ее в квадрат и затем проанализировать полученное значение. Нужно разобрать Float перед , используя его в расчете. Также у вас есть ,2
за пределами заключительного парентеза для вызова Math.pow
, так что квадрат не будет работать.
Было бы полезно использовать и более значимые имена переменных, я имею в виду, например, что у вас есть переменная с именем "квадрат", которая содержит результат операции с квадратным корнем.
P.S. Вам нужно добавить некоторую проверку ошибок, если пользователь вводит нечисловые данные. Убедитесь, что результат parseFloat()
не равен NaN
. Я был бы склонен сделать начальный цикл разбора массива и проверки на допустимые числа, сохранения проанализированных чисел во втором массиве (или записи их обратно в первый массив), и, если таковые имеются, дают пользователю сообщение об ошибке в этот момент и остановимся. Тогда в ваших реальных вычислениях вам не нужно беспокоиться о разборе по ходу (или, в вашем случае, повторном разборе во втором цикле).