Skoro evens i odds to tablice, to dlaczego przerabiasz je na stringi w 7 i 9 linii? Powinieneś prędzej użyć metody push, żeby dodawać kolejne wartości do tablicy - wtedy też dodanie znaku \n było by zbędne.
Nie wiem za bardzo jak rozumieć fragment o sortowaniu:
Construct a for loop that sorts the array [2, 3, 13, 18, -5, 38, -10, 11, 0, 104] into two new arrays:
, bo jeśli tu faktycznie trzeba sortować tablicę, to w Twoim kodzie tego nie widzę.
Co do samego kodu, to ja bym skusił się na użycie metody reduce, która zwróci obiekt z obiema tablicami (evens i odds):
const { evens, odds } = [2, 3, 13, 18, -5, 38, -10, 11, 0, 104]
.sort((a,b) => a - b)
.reduce((evensAndOdds, num) => {
if (num % 2 === 0) {
evensAndOdds.evens.push(num);
} else {
evensAndOdds.odds.push(num)
}
return evensAndOdds;
}, { evens: [], odds: [] });
console.log(evens); // [-10, 0, 2, 18, 38, 104]
console.log(odds); // [-5, 3, 11, 13]