Создаю с нуля инпуты и кнопку для добавления новых элементов массива, добавляю, но цикл их не видит и не выводит в окно.
Потому что после добавления новых элементов в массив, нужно вызвать повторно функцию render, точнее выполнить эту часть кода:
let li = document.createElement("li");
let content = `${elem.item}, цена ${elem.price}, номер ${elem.index}`;
li.textContent = content;
ul.appendChild(li);
Но указав новые данные для: item, price, index.
Первый вариант
but.addEventListener("click", () => {
goods.push({
item: input1.value,
price: input2.value,
index: input3.value,
});
ul.innerHTML = goods.map(({ item, price, index }) => {
return `<li>${item}, цена ${price}, номер ${index}</li>`
}).join("");
});
Или:
Второй вариант
but.addEventListener("click", () => {
goods.push({
item: input1.value,
price: input2.value,
index: input3.value,
});
const { item, price, index } = goods[goods.length - 1];
let li = document.createElement("li");
let content = `${item}, цена ${price}, номер ${index}`;
li.textContent = content;
ul.append(li);
});