О каких элементах идёт речь:
const parent = document.querySelector('.top');
const elements = parent.children;
Удаляем:
parent.replaceChildren(...Array.prototype.filter.call(
elements,
function({ textContent: n }) {
return !this.has(n) && this.add(n);
},
new Set
));
или
const { size: numUnique } = Array.prototype.reduce.call(
elements,
(acc, n) => acc.add(elements[acc.size].innerText = n.innerText),
new Set
);
for (; elements[numUnique]; parent.lastElementChild.remove()) ;
или
parent.innerHTML = Array
.from(new Set(Array.from(elements, n => n.outerHTML)))
.join('');
или
Object
.values(Array
.from(elements)
.reduce((acc, n) => ((acc[n.innerText] ??= []).push(n), acc), {}))
.forEach(n => n.forEach((m, i) => i && parent.removeChild(m)));
или
[...elements]
.filter((n, i, a) => n !== a.find(m => m.innerText === n.innerText))
.forEach(n => n.replaceWith());