Można tą funkcję nieco skrócić, np. do postaci:
function distFromAvarage (arr) {
var average = arr.reduce((a,b) => a+b) / arr.length;
console.log(arr.map(v => v - average));
}
distFromAvarage ([2,4,6]); // [-2, 0, 2]
Kilka uwag do zastosowanych metod:
reduce(): w tym wypadku po prostu dodaje kolejno wszystkie wartości tablicy i zwraca całkowitą sumę
map(): przelatuje przez wszystkie elementy tablicy i modyfikuje każdy z nich. Metoda map() nie modyfikuje oryginalnej tablicy, lecz zwraca nową, przetworzoną tablicę.
Ponad to, jeśli nie byłoby to zadanie typowo szkolne (gdzie pewnie masz jakieś z góry narzucone warunki brzegowe) polecałbym rozszerzyć funkcję o sprawdzenie czy na pewno arr to tablica zawierająca liczby, lub elementy dające się zrzutować na liczbę (jeśli dopuszczamy taką możliwość) i w razie złych danych wejściowych zgłosić wyjątek lub podać odpowiedni komunikat w konsoli.
Jeszcze taka mała dygresja związana z Twoim kodem:
unikaj stosowania zmiennych globalnych - w Twoim wypadku praktycznie wszystkie zmienne to zmienne globalne, a powinny być zmiennymi w zakresie funkcji. Dotyczy to również zmiennej "i" stosowanej w pętli, gdyż przy braku jawnej deklaracji przez var, let lub const zmienna wylatuje właśnie do zakresu globalnego, czyli np. obiektu window jeśli mówimy o przeglądarce (bo np. w nodeJS sprawa jest nieco bardziej skomplikowana). Ponad to lepiej jest stosować jedną deklarację, np. "var" dla wszystkich zmiennych:
var one = 0, //tutaj przecinek
average = 0; //za ostatnią deklarowaną zmienną średnik