· 4 years ago · May 05, 2021, 03:50 PM
1//TODO Classe Store
2class Store {
3 constructor(products) {
4 this.productsList = products
5 }
6
7 static getProducts(key, val) {
8 const RESULT_ARRAY = []
9
10 switch (key) {
11 case 'name':
12 for (let product of this.productsList) {
13 if (product.name.indexOf(val) !== -1){
14 RESULT_ARRAY.push(product)
15 }
16 }
17 break;
18 case 'maxPrice':
19 this.productsList.forEach(product => {
20 if (product.price > 40){
21 RESULT_ARRAY.push(product)
22 }
23 })
24 break;
25 }
26
27 return RESULT_ARRAY
28 }
29
30}
31
32//TODO Classe Prodotto
33
34class Prodotto {
35 constructor(code, name, price, amount = 0) { //public Prodotto() -> Java
36 this.code = code;
37 this.name = name;
38 this.price = price;
39 this.amount = amount;
40 }
41}
42
43/**
44 * Questo metodo trasforma gli oggetti generici della lista
45 * in oggetti tipizzati come prodotto
46 * @param productsArray
47 * @returns {*[]} -> Mi restituisce la lista productsList
48 */
49function parseToProduct(productsArray) {
50 let productsList = [];
51 //Per ogni oggetto all'interno di productsArray
52 productsArray.forEach(prodotto => {
53 //Crea un nuovo prodotto
54 let product = new Prodotto(prodotto.code, prodotto.name, prodotto.price);
55 //Aggiungilo alla lista productsList
56 productsList.push(product);
57 });
58 //Restituiscimi la lista contenente i prodotti
59 return productsList;
60}
61
62let funzione = function () {
63 let stringa = 'ciao';
64}
65
66let arrowFunction = () => {
67
68}
69
70//Funzione main
71function main() {
72 //Chiamata API simulata
73 let products = '[{"code":"ppl","name":"apple","price":32},{"code":"orng","name":"orange","price":22},{"code":"mln","name":"melon","price":52}]';
74 //Converto la lista di oggetti di tipo String in tipo Oggetto (Generico)
75 let productsParsed = JSON.parse(products);
76 //Converto gli oggetti della lista productsParsed in tipo Prodotto (Tipizzato)
77 let listProducts = parseToProduct(productsParsed);
78 //Creo il mio negozio
79 let amazonDeiPoveri = new Store(listProducts)
80 esegui(amazonDeiPoveri);
81}
82
83
84function esegui(myStore) {
85 console.log("getProducts name", Store.getProducts("name", "app")); // [oggetto] elemento apple
86 console.log("maxPrice maxPrice", Store.getProducts("maxPrice", 40)); // [oggetti] elementi apple e orange
87 //console.log("maxPrice maxPrice", myStore.getProductsName("maxPrice", 100)); // [oggetti] elementi apple, orange, melon
88 //console.log("getCart", myStore.getCart()); // array vuoto
89 //console.log("addToCart", myStore.addToCart("orng", 2)); // true se operazione andata a buon fine
90 //console.log("getCart", myStore.getCart()); // [oggetto] orange
91}
92