Знакомство с JavaScript в браузере 23/23


#1
var cardsData = [
  {
    inStock: true,
    imgUrl: 'gllacy/choco.jpg',
    text: 'Сливочно-кофейное с кусочками шоколада',
    price: 310,
    isHit: true,
    specialOffer: 'Двойная порция сиропа бесплатно!'
  },
  {
    inStock: false,
    imgUrl: 'gllacy/lemon.jpg',
    text: 'Сливочно-лимонное с карамельной присыпкой',
    price: 125,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/cowberry.jpg',
    text: 'Сливочное с брусничным джемом',
    price: 170,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/cookie.jpg',
    text: 'Сливочное с кусочками печенья',
    price: 250,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/creme-brulee.jpg',
    text: 'Сливочное крем-брюле',
    price: 190,
    isHit: false
  }
];

var makeElement = function (tagName, className, text) {
  var element = document.createElement(tagName);
  element.classList.add(className);
  if(text) {
    element.textContent = text;
  }
  return element;
}


var createCard = function (array) {
    var product = makeElement('li', 'good');
    
    var availabilityClass = 'good--available';
    if(!array.inStock) {
      availabilityClass = 'good--unavailable';
    }
    product.classList.add(availabilityClass);
    
    
    var title = makeElement('h2', 'good__description', array.text);
    product.appendChild(title);
    
    var image = makeElement('img', 'good__image', array.text);
    image.src = array.imgUrl;
    image.alt = array.text;
    product.appendChild(image);
  
    var price = makeElement('p', 'good__price', array.price + '₽/кг');
    product.appendChild(price);
    
    if(array.isHit) {
      product.classList.add('good--hit');
    };
    
    if(array.specialOffer) {
      var specialOffer = makeElement('p', 'good__special-offer', array.specialOffer);
      product.appendChild(specialOffer);
    };
    return product;
};

var renderCards = function(goods) {
  var products = document.querySelector('.goods');

  for(var i = 0; i < goods.length; i++) {
    var cardItem = createCard(cardsData[i]);
    products.appendChild(cardItem);
  }
}

renderCards(cardsData);

Все работает, но в компиляторе пишет что не совпадает, посмотрите пожалуйста в чем может быть ошибка?


#3

поправьте так:

var image = makeElement('img', 'good__image');

ну и чисто придираясь, не array, a object :sweat_smile: