Все, что создает new_dict
создает его неправильно.Это массив, но код, создающий его, использует его как обычный объект.Я бы исправил это так, что это, например, массив объектов.
Но с вашей текущей структурой:
Если вы хотите перебирать свои свойства в алфавитном порядке по именам свойств, вы можете использовать Object.keys
, чтобы получить ключи и отсортировать их, а затем перебрать результат с помощью map
, создавая вывод:
document.getElementById('next').innerHTML = Object.keys(new_dict)
.sort((a, b) => a.localeCompare(b)) // Sorts lexicographically (loosely, "alphabetically")
.map(key => escapeHTML(key + ": " + new_dict[key]))
.join("<br>"); // Joins them with <br> in-between
}
... где escapeHTML
кодирует &
и <
, так как вы генерируете HTML.Быстрая и грязная версия (которой достаточно для вышеперечисленного) будет выглядеть примерно так:
// ONLY good enough to handle text that isn't in attributes
function escapeHTML(str) {
return str.replace(/&/g, "&").replace(/</g, "<");
}