Да без понятия, в чём там у вас проблема. Что за ошибка - об этом вы почему-то предпочли умолчать. Так что, какой вопрос - такой ответ. Вот вам решения рабочие, сравнивайте со своим, думайте:
Можно собирать новый массив:
function solve(arr) {
const last = arr.reduce((acc, n, i) => (acc[n] = i, acc), {});
return arr.filter((n, i) => last[n] === i);
}
Или удалять элементы из существующего:
function solve(arr) {
const last = new Map(arr.map((n, i) => [ n, i ]));
arr.length -= arr.reduce((acc, n, i, a) => (
a[i - acc] = n,
acc + (i !== last.get(n))
), 0);
return arr;
}
Или и то и другое сразу:
const solve = arr => (
arr.splice(0, arr.length, ...[...new Set(arr.reverse())].reverse()),
arr
);