class Termek{
    constructor(nev, ar, mennyiseg, azonosito){
        this.nev = nev;
        this.ar = ar;
        this.mennyiseg = mennyiseg;
        this.azonosito = azonosito;
    }

    adatok(){
        return `Név: ${this.nev}\nÁr:${this.ar}\nMennyiség: ${this.mennyiseg}\nAzonosító: ${this.azonosito}`;
    }
}

class Elelmiszer extends Termek{
    static elelmiszerSzam = 0;
    constructor(nev, ar, mennyiseg, azonosito, szavatossagiIdo){
        super(nev, ar, mennyiseg, azonosito);
        this.szavatossagiIdo = szavatossagiIdo;
        Elelmiszer.elelmiszerSzam++;
    }

    adatok(){
        return `Név: ${this.nev}\nÁr:${this.ar}\nMennyiség: ${this.mennyiseg}\nAzonosító: ${this.azonosito}\nSzavatossági idő: ${this.szavatossagiIdo}`;
    }

    static osszesElelmiszer(){
        return Elelmiszer.elelmiszerSzam;
    }
}

class ElektronikaiTermek extends Termek{
    static elektronikaSzam = 0;
    constructor(nev, ar, mennyiseg, azonosito, garancia){
        super(nev, ar, mennyiseg, azonosito);
        this.garancia = garancia;
        ElektronikaiTermek.elektronikaSzam++;
    }

    adatok(){
        return `Név: ${this.nev}\nÁr:${this.ar}\nMennyiség: ${this.mennyiseg}\nAzonosító: ${this.azonosito}\nGarancia: ${this.garancia}`;
    }

    static osszesElektronikaiTermek(){
        return ElektronikaiTermek.elektronikaSzam;
    }
}

class Raktar{
    constructor(termekek){
        this.termekek = termekek;
    }

    hozzaadTermek(termek){
        this.termekek.push(termek);
    }

    eltavolitTermek(azonosito){
        for (let index = 0; index < this.termekek.length; index++) {
            if (this.termekek[index].azonosito == azonosito){
                this.termekek = removeItem(this.termekek, this.termekek[index]);
            }
            
        }
        
    }

    keszletKimutatas(){
        this.termekek.forEach(element => {
            console.log(element.adatok());
        });
    }

    keresTermek(nev){
        for (let index = 0; index < this.termekek.length; index++) {
            if (this.termekek[index].nev == nev){
                console.log(this.termekek[index].adatok());
            }
            
        }
    }
}

function removeItem(array, itemToRemove) {
    let index = array.indexOf(itemToRemove);

    let newArr = index !== -1 ? 
        [...array.slice(0, index), ...array.slice(index + 1)] : fruits;
    
    return newArr;
}

let iphone = new ElektronikaiTermek("IPHONE", 160000, 1, 120, 2);
let alma = new Elelmiszer("alma", 150, 500, 420, 2);

let array = new Array(iphone, alma);

let raktar = new Raktar(array);
raktar.keszletKimutatas();