Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
1.3 kB
5
Indexable
class ListaTowarow {
    constructor() {
        this.lista = [];
    }

    wypiszWszystkieProdukty() {
        this.lista.forEach(function(element) {
            console.log(element)
        })
    }


    dodajProdukt(p) {
        if ((this.lista.findIndex(x => x.id == p.id)) !== -1) {
            console.log('error')
        } else {
            this.lista.push(p);
        }
    }

    wypiszProdukt(idProduktu) {
        return this.lista.find(x => x.id == idProduktu);
    }

    zmienProdukt(idProduktu, produkt) {
        const index = this.lista.findIndex(x => x.id == idProduktu);
        this.lista[index] = produkt;
    }

}


class Magazyn extends ListaTowarow {

    constructor() {
        super(lista);
        this.map = new Map();
    }

    dodajProdukt(produkt, ilosc) {
        if ((this.lista.findIndex(x => x.id == produkt.id)) !== -1) {
            console.log('error');
        } else {
            this.map.set(produkt.id, ilosc);
            this.lista.push(produkt);
        }
   
    }

    zabierzProdukt(idProduktu, iloscSztuk) {
        if(iloscSztuk <= this.map.get(idProduktu)) {
           this.map.set(idProduktu, (this.map.get(idProduktu) - iloscSztuk));
            return this.lista.find(x => x.id == idProduktu );
       }
 
    }
}