Не проходит контрольную проверку испытание 21/21, хотя все выглядит как в образце

  function renderCards(data) {
let data1 = data;
let list = document.querySelector('.goods')
data1.forEach(function(item) {
  let card = document.createElement("div"); 
  card.classList.add("good");
  let h2 = document.createElement("h2");
  let img = document.createElement("img");
  let p = document.createElement("p");
  p.innerText = `${item.price}₽/кг`;
  p.classList.add("good__price");
  img.setAttribute("src", item.imgUrl);
  img.classList.add("good__image");
  h2.innerHTML = item.text;
  h2.classList.add("good__description");
  card.appendChild(h2);
  card.appendChild(img);
  card.appendChild(p);
  if (item.inStock) {
    card.classList.add("good--available");
    } else {
      card.classList.add("good--unavailable");
      };
  if (item.isHit) {
    card.classList.add("good--hit");
    let hitP = document.createElement("p");
    hitP.innerText = item.specialOffer;
    hitP.classList.add("good__special-offer");
    card.appendChild(hitP);
    };
  list.appendChild(card);
  })
}

renderCards(cardsData);

  • почему у вас везде let?
  • let data1 = data; - зачем это?
  • .appendChild - это старый api, современный https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/append
  • зачем в коде использовать и одинарные и двойные кавычки?
  • ошибка какая-то есть при проверке?
  1. А почему я не могу использовать let?
  2. За appendChild спасибо, не знал.
  3. С кавычками случайно в одном месте)
  4. Нет, ошибок нет

let - это переменная, нужна для особых случаев. У вас же ни разу не было изменения переменной

В теории указано: Обратите внимание, в какой последовательности идут элементы в карточке товара.

И в карточке, и в теории

  • imgUrl — ссылка на изображение товара.
  • text — название продукта.
    но чтоб прошло проверку нужно сделать наоборот.
    За то скилл прокачал, научился код смотреть