Я не знаю, как создать функцию сортировки по цене и распечатать в HTML (заменить) - PullRequest
0 голосов
/ 13 мая 2019

Моя задача: создать класс товаров

  1. Имя
  2. Цена
  3. Описание
  4. Фотография

и создать кнопку, функцию щелчка, которая сортирует по цене и печатает в HTML (div id = "products")

<body>
    <div id="wrap">
        <button id="sortByPrice()" onclick="sortByPrise()">sort by price</button>
    </div>

    <div id="products"></div>
</body>

Я создал класс с товарами:

class Products {
    constructor(name,price,description,img){
        this.name = name;
        this.price = price;
        this.description = description;
        this.img = img;
    }
};

var nike = new Products("Nike", 100, "shoes","img/nike.png");
var adidas = new Products("Adidas", 120, "classic-shoes","img/adidas.png");
var puma = new Products("Puma",200,"new-shoes","img/puma.png");
var jordan = new Products("Jordan", 170, "outlet-shoes", "img/jordan.png");

var arrGoods = [nike,adidas,puma,jordan];

and push into HTML

function addGoods(item){
    for (let i = 0; i<arrGoods.length; i++){
            document.getElementById("products").innerHTML += `<div class="info-goods">
            <div class="img"><img src=${item[i].img}></div>
            <div class="name">${item[i].name}</div>
            <div class="price">${item[i].price}</div>
            <div class="description">${item[i].description}</div>
           </div>`
        }
}

addGoods(arrGoods);

Так что мне нужна функция для сортировки

1 Ответ

1 голос
/ 13 мая 2019

запустить метод сортировки после помещения значений в массив

class Products {
        constructor(name,price,description,img){
            this.name = name;
            this.price = price;
            this.description = description;
            this.img = img;
        }
    };
    function sortByPrise(arr) {
        arr.sort(function(a,b){
            return a.price - b.price;
        })
        console.log(arr);
    }



    var nike = new Products("Nike", 100, "shoes","img/nike.png");
    var adidas = new Products("Adidas", 120, "classic-shoes","img/adidas.png");
    var puma = new Products("Puma",200,"new-shoes","img/puma.png");
    var jordan = new Products("Jordan", 170, "outlet-shoes", "img/jordan.png");

    var arrGoods = [nike,adidas,puma,jordan];

     sortByPrise(arrGoods);



    function addGoods(item){
        for (let i = 0; i<item.length; i++){
                document.getElementById("products").innerHTML += `<div class="info-goods">
                <div class="img"><img src=${item[i].img}></div>
                <div class="name">${item[i].name}</div>
                <div class="price">${item[i].price}</div>
                <div class="description">${item[i].description}</div>
               </div>`
            }
    }

    addGoods(arrGoods);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...