rinomina esercizi js
This commit is contained in:
12
javascript/07_Oggetti/esercizi/creazione_profilo.js
Normal file
12
javascript/07_Oggetti/esercizi/creazione_profilo.js
Normal 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
|
||||
17
javascript/07_Oggetti/esercizi/debug_accesso.js
Normal file
17
javascript/07_Oggetti/esercizi/debug_accesso.js
Normal 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]);
|
||||
11
javascript/07_Oggetti/esercizi/listino_prezzi.js
Normal file
11
javascript/07_Oggetti/esercizi/listino_prezzi.js
Normal 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
|
||||
15
javascript/07_Oggetti/extra/carrello_ecommerce.js
Normal file
15
javascript/07_Oggetti/extra/carrello_ecommerce.js
Normal 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]"
|
||||
*/
|
||||
22
javascript/07_Oggetti/extra/dashboard_complessa.js
Normal file
22
javascript/07_Oggetti/extra/dashboard_complessa.js
Normal 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.
|
||||
*/
|
||||
24
javascript/07_Oggetti/extra/debug_destructuring.js
Normal file
24
javascript/07_Oggetti/extra/debug_destructuring.js
Normal 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);
|
||||
84
javascript/07_Oggetti/extra/debug_pizza.js
Normal file
84
javascript/07_Oggetti/extra/debug_pizza.js
Normal 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);
|
||||
|
||||
123
javascript/07_Oggetti/tutorial_interattivo.js
Normal file
123
javascript/07_Oggetti/tutorial_interattivo.js
Normal 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.
|
||||
Reference in New Issue
Block a user