Popełniłeś kilka błędów w zadaniu. Tablica ma wewnątrz siebie 9 elementów, a nie 10; zadeklarowana zmienna firstIndex stanowi błąd składniowy w kodzie, a iteracja tablicy najzwyczajniej nie będzie działać, jeśli licznik będziesz porównywał ze zmienną firstIndex.
Zrobimy to w ten sposób: metoda indexOf tablicy z podanym argumentem określa pierwszą pozycję tablicy, zawierającą podany argument, a w wypadku, kiedy jej nie posiada zwraca -1. Pętlę wykonajmy w ten sposób, żeby sprawdzała, czy box.indexOf(i) jest równe i - jeśli tak, to element występuje jako pierwszy (bo indexOf zwraca pierwszą pozycję wartości podanej w argumencie), a jeśli nie, to najzwyczajniej element w tablicy się powtórzył, czyli możesz przypisać zmiennej firstIndex wartość i przerwać pętlę. Dodatkowy mechanizm będzie stanowić początkowa deklaracja zmiennej firstIndex jako -1: w wypadku, kiedy żadna liczba się nie powtórzy zmienna pozostanie bez zmian, przez co łatwo sprawdzić i przechwycić taki wyjątek.
var box = [3, 1, 2, 5, -4, 2, 9, 7, 1, 0];
var firstIndex = -1;
for (var i = 0; i < box.length; i++) {
var currentValue = box[i];
var firstElementIndex = box.indexOf(currentValue);
if (firstElementIndex !== i) {
firstIndex = firstElementIndex;
break;
}
}
if (firstIndex !== -1) console.log('Pierwszy powtarzający się element to:', firstIndex); // 2
else console.log('Elementy nie powtarzają się');