Untitled
unknown
javascript
2 years ago
3.8 kB
4
Indexable
Never
const kosztEn=1.23; class Product{ constructor(id,nazwa,model,cena,zuzycieEnergii){this.id=id, this.nazwa=nazwa, this.model=model, this.cena=cena, this.zuzycieEnergii=zuzycieEnergii this.ilosc=1 //this.ilosc = 1 } koszt(){ return this.cena; } kosztEnergii(){ return this.zuzycieEnergii*kosztEn + "kWh"; } wiekProduktu(rocznik){ return 2022-rocznik; } wiekProduktuLata(rocznik){ let lata=2022-rocznik if(lata==1) return lata + " rok"; else if(lata>1||lata<5) return lata + " lata"; else{ return lata + " lat"; } } tostring() { return("(" + this.id + ", " + this.nazwa + ", "+ this.model + ", " + this.cena + ", " + this.zuzycieEnergii +")") } } class ListaTowarow{ constructor() { this.lista=new Array(); } wypiszWszystkieProdukty() { this.lista.forEach(function(element) { console.log(element) }) } dodajProdukt(p){ if(this.lista.find(x=>x.id==p.id)){ //zeby sprawdzic czy juz jest w liscie o tym indekscie throw 'Object already in array'; }else{ this.lista.push(p) }} zmienProdukt(idprod,produkto){ let n=this.lista.findIndex(x => x.id == idprod) this.lista[n]=produkto; } wypiszProdukt(idprod){ return this.lista.find(x=>x.id == idprod) }} class Sklep extends ListaTowarow{ dodajProduktbezid(nazwa,model,cena,zuzycieEnergii){ let id = 0 for(let i =0;i<this.lista.length;i++){ if(this.lista[i].id>id) id=this.lista[i].id } id=id+1 let x = new Product(id,nazwa,model,cena,zuzycieEnergii) this.lista.push(x) } dodajProduktzid(id,nazwa,model,cena,zuzycieEnergii){ let x = new Product(id,nazwa,model,cena,zuzycieEnergii) this.lista.push(x) } } class Magazyn extends ListaTowarow { constructor() { super(list) this.map = new Map(); } dodajProdukt(p,ile){ if(this.lista.find(x=>x.id==p.id)){ //zeby sprawdzic czy juz jest w liscie o tym indekscie throw 'Object already in array'; }else{ this.map.set(p.id, ile); p.ilosc = ile; this.lista.push(p) }} zabierzProdukt(idprod, ile) { if(!this.lista.find(x=>x.id==idprod)){ //zeby sprawdzic czy juz jest w liscie o tym indekscie throw 'Object not in array'; }else{ //nie dziala console.log("zabierzprodukt") let n=this.lista.findIndex(x => x.id == idprod) console.log(this.lista) this.lista[n].ilosc=this.lista[n].ilosc-ile; }} /* if(iloscSztuk <= this.map.get(idProduktu)) { this.map.set(idProduktu, (this.map.get(idProduktu) - iloscSztuk)); return this.lista.find(x => x.id == idProduktu ); }*/ } let prod = new Product(2,"pralkobetoniarka","X77",800,10) let prod2=new Product(4,"Tarkowiertarka","ub99",300,2) let prod3=new Product(111,"Piekarnikolodowka","jedyny",2000,15) let list=new ListaTowarow() list.dodajProdukt(prod) list.dodajProdukt(prod3) list.dodajProdukt(prod2) /*let x =list.wypiszProdukt(2) //list.wypiszWszystkieProdukty() console.log(x) try { list.dodajProdukt(prod3) } catch (e) { console.error(e); // expected output: "Parameter is not a number!" } list.zmienProdukt(2,prod3) //list.wypiszWszystkieProdukty() let mag = new Magazyn() mag.dodajProdukt(prod,3) mag.dodajProdukt(prod2,5) mag.wypiszWszystkieProdukty() try { mag.zabierzProdukt(5,2) } catch (e) { console.error(e); //not in array } mag.zabierzProdukt(2,2) mag.wypiszWszystkieProdukty() */ let sklp= new Sklep() sklp.dodajProdukt(prod) sklp.dodajProduktzid(5,"Xd","Omg",1,111) sklp.dodajProduktbezid("tomek","smiglowiec",10000,100) sklp.wypiszWszystkieProdukty()