Откуда и кого надо удалить:
const select = document.querySelector('вам виднее, что тут должно быть');
const values = [ '1', '2', '3' ];
Удаляем:
[...select].forEach(n => values.includes(n.value) && n.remove());
или
for (const n of select.querySelectorAll(values.map(n => `[value="${n}"]`))) {
select.removeChild(n);
}
или
select.replaceChildren(...Array.prototype.filter.call(
select,
((values, n) => !values.has(n.value)).bind(null, new Set(values))
));
или
Array.prototype.reduceRight.call(
select.options,
(_, n) => ~values.indexOf(n.value) && n.replaceWith(),
null
);
или
select.innerHTML = Array
.from(select.children)
.filter(function(n) {
return n.matches(this);
}, `:not(${values.map(n => `[value="${n}"]`)})`)
.map(n => n.outerHTML)
.join('');
или
(function next(i, n = select.item(--i)) {
if (n) {
for (const v of values) {
if (v === n.value) {
n.outerHTML = '';
break;
}
}
next(i);
}
})(select.length);