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