rinomina esercizi js

This commit is contained in:
2026-02-12 18:36:35 +01:00
parent f0b6b85b36
commit 60878cf770
150 changed files with 16 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
/**
* Esercizio Intermedio: Profilo Social
*
* Obiettivo: Creare e manipolare un oggetto che rappresenta un profilo utente.
*
* 1. Crea un oggetto 'utente' con: username, email, e online (booleano).
* 2. Dopo averlo creato, cambia lo stato di 'online' impostandolo al contrario di quello che è (es. se true diventa false).
* 3. Aggiungi una nuova proprietà 'biografia' con un testo a piacere.
* 4. Stampa l'oggetto finale.
*/
// Scrivi qui il tuo codice

View File

@@ -0,0 +1,17 @@
/**
* Esercizio Intermedio: Debugging Accesso Proprietà
*
* Il codice seguente genera un errore.
* L'intenzione è stampare una proprietà della pizza.
*
* 1. Analizza perché il codice fallisce.
* 2. Correggi il codice affinché stampi correttamente.
*/
let pizza = {
tipo: "Margherita",
prezzo: 7
};
console.log(pizza[tipo]);
console.log(pizza[prezzo]);

View File

@@ -0,0 +1,11 @@
/**
* Esercizio Intermedio: Aggiornamento Listino
*
* Obiettivo: Eseguire operazioni matematiche sui valori delle proprietà.
*
* 1. Crea un oggetto 'biglietto' con proprietà: 'tipo' ("Cinema") e 'costo' (10).
* 2. Immagina che ci sia uno sconto: sottrai 2 dal valore della proprietà 'costo'.
* 3. Stampa una frase: "Il biglietto per il [tipo] costa [costo] euro."
*/
// Scrivi qui il tuo codice

View File

@@ -0,0 +1,15 @@
/**
* Esercizio Extra: Carrello E-Commerce (Array di Oggetti)
*
* Obiettivo: Lavorare con una lista (Array) dove ogni elemento è un prodotto (Oggetto).
*
* 1. Crea un array chiamato 'carrello'.
* 2. Inserisci dentro l'array due oggetti prodotto manualmente.
* Ogni oggetto deve avere: 'nome' (stringa) e 'prezzo' (numero).
* Es: { nome: "Mouse", prezzo: 20 }, { nome: "Tastiera", prezzo: 50 }
* 3. Aggiungi un terzo prodotto all'array usando il metodo .push().
* Il prodotto è: { nome: "Monitor", prezzo: 100 }
* 4. Calcolo Totale: Crea una variabile 'totale' e calcola la somma dei prezzi dei tre prodotti.
* Usa un ciclo for per iterare sull'array 'carrello'.
* 5. Stampa: "Il totale del carrello è: [totale]"
*/

View File

@@ -0,0 +1,22 @@
/**
* Esercizio Extra: Dashboard Utente Complessa (Oggetti Annidati)
*
* Obiettivo: Accedere e modificare dati dentro oggetti che sono dentro altri oggetti.
*
* Struttura Dati:
* Hai un oggetto 'dashboard' che contiene le impostazioni di un utente.
*
* 1. Crea l'oggetto seguendo questa struttura:
* dashboard = {
* utente: "Admin",
* preferenze: {
* tema: "Scuro",
* notifiche: { email: true, sms: false }
* }
* }
* 2. Senza toccare la dichiarazione iniziale, modifica il valore di 'sms' in true.
* (Suggerimento: usa più punti, es. oggetto.livello1.livello2...)
* 3. Stampa in console solo il valore del 'tema'.
* 4. Aggiungi una nuova proprietà 'push' dentro l'oggetto 'notifiche' e impostala a true.
* 5. Stampa l'intero oggetto dashboard finale.
*/

View File

@@ -0,0 +1,24 @@
/**
* Esercizio Extra: Debugging Destrutturazione
*
* La "Destrutturazione" è un modo veloce per estrarre proprietà in variabili:
* const { nome } = persona; (Crea una variabile 'nome' col valore di persona.nome).
*
* Il codice sotto cerca di estrarre la città dell'utente, ma stampa 'undefined'.
*
* 1. Analizza la struttura dell'oggetto 'user'.
* 2. Correggi la riga della destrutturazione.
*/
const user = {
id: 1,
profilo: {
username: "anna92",
citta: "Roma"
}
};
// CODICE BUGGATO
const { citta } = user;
console.log("L'utente vive a:", citta);

View File

@@ -0,0 +1,84 @@
/**
* Esercizio Extra: Debugging Accesso Proprietà Oggetti
*
* Un cliente entra nella pizzeria e ordina alcune cose:
* - Una margherita
* - Un calzone ricotta e spinaci
* - Una birra
*
* Nel seguente codice sono presenti alcuni errori che impediscono
* il corretto calcolo del totale dell'ordine.
*
* 1. Analizza il codice e individua gli errori (dalla riga 73 in poi).
* 2. Correggi il codice in modo che stampi correttamente il totale dell'ordine.
* 3. Il totale corretto dell'ordine dovrebbe essere: 6 + 8 + 4 = 18
*
* Nota: il menù è un pò lungo e può dar fastidio ma si può
* minimizzare cliccando a sinistra del LET (appare una freccetta).
*
* [4 righe di codice da correggere, 6 errori in totale]
*/
let menu = [
{
tipo: "pizza",
nome: "margherita",
prezzo: 6
},
{
tipo: "pizza",
nome: "diavola",
prezzo: 8
},
{
tipo: "pizza",
nome: "quattro_stagioni",
prezzo: 9
},
{
tipo: "pizza",
nome: "vegetariana",
prezzo: 7
},
{
tipo: "calzone",
nome: "classico",
prezzo: 7
},
{
tipo: "calzone",
nome: "ricotta_e_spinaci",
prezzo: 8
},
{
tipo: "bevanda",
nome: "acqua",
prezzo: 2
},
{
tipo: "bevanda",
nome: "cola",
prezzo: 3
},
{
tipo: "bevanda",
nome: "birra",
prezzo: 4
}
];
let ordine = ["margherita", "ricotta_e_spinaci", "birra"];
let totaleOrdine = 0;
// CODICE BUGGATO
for (let i = 1; i < menu.length; i++) {
let oggetto = menu[i];
if (!ordine.includes(oggetto.tipo)) {
console.log(oggetto.tipo + ": €" + oggetto.prezzo);
totaleOrdine += oggetto.nome;
}
}
console.log("Totale: €" + totaleOrdine);

View File

@@ -0,0 +1,123 @@
// TUTORIAL INTERATTIVO: Oggetti in JavaScript
// Segui gli step, leggi i commenti e completa i TODO.
// Esegui questo file con Node.js per verificare i risultati.
/**
* ===========================================
* === 1. Creazione di un Oggetto ===
*
* Un oggetto è una collezione di coppie chiave-valore.
* Si usano le parentesi graffe { }.
* Esempio: let palla = { colore: "Rosso", dimensione: 10 };
*/
// TODO: Crea un oggetto chiamato 'persona' con le proprietà: 'nome' (stringa) e 'eta' (numero).
// TODO: Stampa l'intero oggetto in console.
// OUTPUT ATTESO: { nome: 'Mario', eta: 25 }
/**
* ===========================================
* === 2. Accesso con la "Dot Notation" (Punto) ===
*
* Per leggere un valore, usiamo il punto seguito dal nome della proprietà.
* Esempio: palla.colore
*/
let cane = {
razza: "Labrador",
colore: "Miele",
haIlGuinzaglio: true
};
// TODO: Stampa solo la razza del cane usando il punto.
// OUTPUT ATTESO: Labrador
/**
* ===========================================
* === 3. Accesso con la "Bracket Notation" (Parentesi Quadre) ===
*
* Possiamo anche usare le parentesi quadre e il nome della proprietà come stringa.
* Questo è utile se il nome della proprietà contiene spazi o caratteri speciali.
* Esempio: palla["colore"]
*/
let libro = {
"titolo libro": "Il Signore degli Anelli",
pagine: 500
};
// TODO: Stampa il titolo del libro usando le parentesi quadre e le virgolette.
// OUTPUT ATTESO: Il Signore degli Anelli
/**
* ===========================================
* === 4. Modifica di una Proprietà ===
*
* Gli oggetti sono mutabili. Puoi cambiare il valore di una proprietà esistente.
* Esempio: palla.colore = "Blu";
*/
let studente = {
nome: "Luca",
voto: 6
};
// TODO: Cambia il voto dello studente a 10. Poi stampa l'oggetto aggiornato.
// OUTPUT ATTESO: { nome: 'Luca', voto: 10 }
/**
* ===========================================
* === 5. Aggiungere/Rimuovere Proprietà ===
*
* Se assegni un valore a una proprietà che non esiste, JavaScript la crea.
* Esempio: palla.materiale = "Gomma";
*
* Puoi rimuovere una proprietà usando la parola chiave 'delete'.
* Esempio: delete palla.dimensione;
*/
let prodotto = {
id: 123,
nome: "Smartphone",
prezzo: 800
};
// TODO: Aggiungi una proprietà 'marca' con valore 'Samsung'.
// TODO: Rimuovi la proprietà 'id' dall'oggetto. Stampa l'oggetto finale.
// OUTPUT ATTESO: { nome: 'Smartphone', prezzo: 800, marca: 'Samsung' }
/**
* ===========================================
* === 6. Oggetti Annidati ===
*
* Le proprietà di un oggetto possono essere altri oggetti.
* Esempio: let auto = { motore: { tipo: "V8", cavalli: 400 } };
*/
let computer = {
marca: "Dell",
specifiche: {
ram: "16GB",
cpu: "Intel i7"
}
};
// TODO: Stampa la quantità di RAM del computer accedendo all'oggetto annidato.
// OUTPUT ATTESO: 16GB
/**
* ===========================================
* === 7. Destrutturazione di Oggetti ===
*
* La destrutturazione permette di estrarre proprietà da un oggetto in variabili.
* Esempio: let { colore, dimensione } = palla;
*/
// TODO: Destruttura l'oggetto 'computer' per ottenere 'marca' e 'specifiche' in variabili separate.
// TODO: Poi destruttura 'specifiche' per ottenere 'ram' e 'cpu' in variabili separate.