• Почему при добавлении новых элементов в массив, цикл их не видит?

    mizutsune
    @mizutsune
    I will live forever in the flame of your eyes.
    Создаю с нуля инпуты и кнопку для добавления новых элементов массива, добавляю, но цикл их не видит и не выводит в окно.


    Потому что после добавления новых элементов в массив, нужно вызвать повторно функцию 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);
    });

    Ответ написан
    3 комментария