Как-то так?
Я использую Object.entries и Условный оператор (троичный) дважды:)
и добавьте ключ объекта к идентификатору диапазона - я мог бы использовать warningAmount, но тогда мне пришлось бы использовать заглавные буквы
Обратите внимание, что объект мог быть создан путем зацикливания на входных элементах
Также игнорировать ("aeiou".indexOf(item[0].toLowerCase())>=0?"n ":" ")
если тебе не нравится
const ticket = {
movie: "",
amount: 0,
snack: "Chips",
};
for (let [key, value] of Object.entries(ticket)) {
document.getElementById("warning_" + key).innerHTML =
value ? "" :
"need to choose a"+ ("aeiou".indexOf(key[0].toLowerCase())>=0?"n ":" ") + key
}
<span id="warning_movie"></span><br/>
<span id="warning_amount"></span><br/>
<span id="warning_snack"></span><br/>