Tutti gli altri (6-10)
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
// TUTORIAL INTERATTIVO: Manipolazione Dati
|
||||
|
||||
// Funzione pricipale del tutorial
|
||||
function eseguiTutorial() {
|
||||
|
||||
/**
|
||||
* ======================================================
|
||||
* LIVELLO 1: Normalizzazione (Stringhe Base)
|
||||
* Spesso i dati arrivano "sporchi" o scritti male.
|
||||
* Dobbiamo standardizzarli per poterli usare correttamente.
|
||||
* ======================================================
|
||||
*/
|
||||
let nomeProdotto = " MacBook Pro M3 ";
|
||||
|
||||
// TODO 1: Rimuovi gli spazi iniziali e finali (trim)
|
||||
let nomePulito = "";
|
||||
|
||||
// TODO 2: Converti tutto in MAIUSCOLO per il codice magazzino (toUpperCase)
|
||||
let perMagazzino = "";
|
||||
|
||||
// TODO 3: Converti tutto in minuscolo per la ricerca (toLowerCase)
|
||||
let perRicerca = "";
|
||||
|
||||
mostraOutput(1, {
|
||||
originale: nomeProdotto,
|
||||
trim: nomePulito,
|
||||
upper: perMagazzino,
|
||||
lower: perRicerca
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* ======================================================
|
||||
* LIVELLO 2: Estrazione Dati (Stringhe Avanzate)
|
||||
* Analizziamo una stringa complessa che contiene più informazioni.
|
||||
* Stringa: "LAPTOP GAMING | 16GB RAM | SSD"
|
||||
* ======================================================
|
||||
*/
|
||||
let descrizione = "LAPTOP GAMING | 16GB RAM | SSD";
|
||||
|
||||
// TODO 1: Controlla se la descrizione contiene la parola "SSD" (includes)
|
||||
// Restituisce true o false
|
||||
let haSSD = false;
|
||||
|
||||
// TODO 2: Spezza la stringa in un array usando il separatore "|" (split)
|
||||
// Otterrai: ["LAPTOP GAMING ", " 16GB RAM ", " SSD"]
|
||||
let caratteristiche = [];
|
||||
|
||||
mostraOutput(2, {
|
||||
contiene_ssd: haSSD,
|
||||
lista_parti: caratteristiche
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* ======================================================
|
||||
* LIVELLO 3: Pulizia Prezzi (Parsing Numeri)
|
||||
* Trasformiamo una stringa di valuta in un numero matematico.
|
||||
* ======================================================
|
||||
*/
|
||||
let prezzoCartellino = "1499.95€";
|
||||
|
||||
// TODO 1: Rimuovi il simbolo "€" sostituendolo con niente "" (replace)
|
||||
let prezzoSenzaSimbolo = prezzoCartellino;
|
||||
|
||||
// TODO 2: Converti la stringa rimasta in un numero decimale (parseFloat)
|
||||
let prezzoNumero = 0;
|
||||
|
||||
// TODO 3: Formatta il numero come stringa con 1 solo decimale (toFixed)
|
||||
// Nota: toFixed restituisce una STRINGA, non un numero!
|
||||
let prezzoFormat = ""; // ... usa .toFixed(1)
|
||||
|
||||
mostraOutput(3, {
|
||||
stringa_pulita: prezzoSenzaSimbolo,
|
||||
numero_vero: prezzoNumero,
|
||||
formattato: prezzoFormat
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* ======================================================
|
||||
* LIVELLO 4: Arrotondamenti (Matematica)
|
||||
* Gestiamo un peso per la spedizione. Spesso i corrieri arrotondano.
|
||||
* Peso: 1.256 kg
|
||||
* ======================================================
|
||||
*/
|
||||
let peso = 1.256;
|
||||
|
||||
// TODO 1: Arrotondamento classico (Math.round)
|
||||
// 1.2 -> 1, 1.5 -> 2, 1.8 -> 2
|
||||
let arrotondato = 0;
|
||||
|
||||
// TODO 2: Arrotondamento per ECCESSO (Math.ceil - "Soffitto")
|
||||
// Utile per calcolare quanti pacchi servono (1.1 diventa 2)
|
||||
let perEccesso = 0;
|
||||
|
||||
// TODO 3: Arrotondamento per DIFETTO (Math.floor - "Pavimento")
|
||||
// 1.9 diventa 1
|
||||
let perDifetto = 0;
|
||||
|
||||
mostraOutput(4, {
|
||||
originale: peso,
|
||||
round: arrotondato,
|
||||
ceil: perEccesso,
|
||||
floor: perDifetto
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* ======================================================
|
||||
* LIVELLO 5: Il dado della fortuna (Random)
|
||||
* Generiamo uno sconto casuale tra 0 e 100.
|
||||
* ======================================================
|
||||
*/
|
||||
|
||||
// TODO 1: Genera un numero casuale tra 0 e 1 (Math.random())
|
||||
let randomBase = 0;
|
||||
|
||||
// TODO 2: Trasformalo in un numero tra 0 e 100
|
||||
// Moltiplica randomBase * 100
|
||||
let randomCento = 0;
|
||||
|
||||
// TODO 3: Rimuovi i decimali per avere un intero (Math.floor)
|
||||
let scontoFinale = 0;
|
||||
|
||||
mostraOutput(5, {
|
||||
random_puro: randomBase.toFixed(4), // Mostro solo 4 decimali per pulizia
|
||||
scala_100: randomCento.toFixed(2),
|
||||
sconto_intero: scontoFinale
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user