Вы можете просто создать элемент, установить его содержимое HTML в качестве закодированной строки, а затем вернуть его текстовое содержимое.
const encodedResults = 'this isn't what I want';
const div = document.createElement('div');
div.innerHTML = encodedResults;
const decodedResults = div.textContent; // this isn't what i want
Редактировать: @ Mr Lister упомянул, что вышеупомянутый метод работает, только когда входные данные не содержат фактических тегов html.
Для входных данных, содержащих теги html, вы можете создать текстовое поле, установить его содержание, а затем вернуть его значение.
const encodedResults = 'this <i>isn't</i> what I want';
const textarea = document.createElement('textarea');
textarea.innerHTML = encodedResults;
const decodedResults = textarea.value; // this <i>isn't</i> what i want