Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <head>
- <meta charset="UTF-8">
- <title>Destructuring</title>
- </head>
- <body>
- <script>
- function min_max(vettore)
- {
- let pos_min=0; let pos_max=0;
- //immaginiamo qui l`algoritmo che determina le
- //posizioni dell`elemento minimo e massimo
- pos_min=3; pos_max=7;
- return [pos_min, pos_max];
- }
- let prodotto =
- { codice: "BPX001", categoria: "alimentari", prezzo: 1.25 };
- //let codice = prodotto.codice;
- //estraggo codice e prezzo in variabili semplici
- //(forma abbreviata: le variabili avranno lo stesso nome delle proprietà)
- let {codice, prezzo} = prodotto;
- console.log(prodotto);
- //forma estesa: decidiamo noi i nomi delle variabili
- let {codice: il_codice, prezzo: il_prezzo} = prodotto;
- writeln(`${il_codice} - ${il_prezzo}` );
- //-------------------------------------------------------------------------
- //il destructuring funziona anche con gli array
- //(anzi con qualunque collezione iterabile)
- let temperature = [-1,-6,-2,3,8,6,4];
- let [h00, h3, h6, h9, h12, h15, h18,h21] = temperature;
- //writeln(`Temp. alle h06:00 ${h6}℃; alle h18:00 ${h18}℃`);
- ([h00,,,,h12,,,h21=0] = temperature);
- console.log(`${h00} ${h12} ${h21}`);
- //swap di variabili
- let x1 = 3, x2 = 9;
- // let temp = x1;
- // x1 = x2;
- // x2= temp;
- [x2, x1] = [x1, x2];
- console.log(x1, x2);
- //-------------------------------------------------------------------------
- //il destructuring è utile anche per gestire return multipli
- let [pos_temp_min, pos_temp_max] = min_max(temperature);
- writeln(`Temperatura minima alle ${3*pos_temp_min}`);
- writeln(`Temperatura massima alle ${3*pos_temp_max}`);
- //-------------------------------------------------------------------------
- let libro = {autore: {cognome: "Alessandro", nome:"Manzoni"},
- titolo: "I promessi sposi", nato_a: {nome: "Milano", nazione:"Italia"}};
- let { autore: {cognome: cognomeAutore, nome: nomeAutore}, titolo} = libro;
- writeln(cognomeAutore);
- writeln(nomeAutore);
- //writeln(titolo);
- let {titolo: t2} = libro;
- //writeln(t2);
- ({titolo} = libro);
- writeln(titolo);
- let JSON_string = `{
- "data": {
- "totalSamplesTested": "578841",
- "totalConfirmedCases": 61307,
- "totalActiveCases": 3627,
- "discharged": 56557,
- "death": 1123,
- "states": [
- {
- "_id": "QFlGp4md3y",
- "confirmedCases": 5910,
- "casesOnAdmission": 542,
- "discharged": 5289,
- "death": 79
- }
- ]
- }
- }`;
- const obj = JSON.parse(JSON_string);
- const {data: {states: [{state: nomeStato1 = "indefinito"}, stato2 = {} ]}} = obj;
- console.log(nomeStato1);
- f({matricola: "AK456YT", cognome: "aldini", nazionalita: "Italia"});
- //function f(matricola, cognome, nome, CF, eta, nazionalita)
- function f(obj)
- {
- const {
- matricola = "non specificata",
- cognome = "anonimo",
- nome="anonimo",
- CF="non specificato",
- eta=0,
- nazionalita="Italia"} = obj
- console.log(matricola);
- console.log(nome);
- }
- function writeln(messaggio, separatore=false)
- {
- document.write(messaggio+"<br>");
- if (separatore)
- writeln("-".repeat(40));
- }
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement