Advertisement
fcamuso

Javascript Lezione 66

Aug 10th, 2022
874
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <head>
  3.   <meta charset="UTF-8">
  4.   <title>Destructuring</title>
  5. </head>
  6. <body>
  7.   <script>
  8.    
  9.     function min_max(vettore)
  10.     {
  11.       let pos_min=0; let pos_max=0;
  12.  
  13.       //immaginiamo qui l`algoritmo che determina le
  14.       //posizioni dell`elemento minimo e massimo
  15.       pos_min=3; pos_max=7;
  16.      
  17.       return [pos_min, pos_max];
  18.     }
  19.  
  20.  
  21.     let prodotto =
  22.       { codice: "BPX001", categoria: "alimentari", prezzo: 1.25 };
  23.    
  24.     //let codice = prodotto.codice;
  25.  
  26.     //estraggo codice e prezzo in variabili semplici
  27.     //(forma abbreviata: le variabili avranno lo stesso nome delle proprietà)
  28.     let {codice, prezzo} = prodotto;
  29.    
  30.     console.log(prodotto);
  31.    
  32.     //forma estesa: decidiamo noi i nomi delle variabili
  33.     let {codice: il_codice, prezzo: il_prezzo} = prodotto;
  34.     writeln(`${il_codice} - ${il_prezzo}` );
  35.     //-------------------------------------------------------------------------
  36.  
  37.  
  38.     //il destructuring funziona anche con gli array
  39.     //(anzi con qualunque collezione iterabile)
  40.     let temperature = [-1,-6,-2,3,8,6,4];
  41.     let [h00, h3, h6, h9, h12, h15, h18,h21] = temperature;
  42.     //writeln(`Temp. alle h06:00 ${h6}℃; alle h18:00 ${h18}℃`);
  43.  
  44.     ([h00,,,,h12,,,h21=0] = temperature);
  45.     console.log(`${h00} ${h12} ${h21}`);
  46.  
  47.     //swap di variabili
  48.     let x1 = 3, x2 = 9;
  49.    
  50.     // let temp = x1;
  51.     // x1 = x2;
  52.     // x2= temp;
  53.  
  54.     [x2, x1] = [x1, x2];
  55.     console.log(x1, x2);
  56.  
  57.    
  58.  
  59.  
  60. //-------------------------------------------------------------------------
  61.  
  62.     //il destructuring è utile anche per gestire return multipli
  63.     let [pos_temp_min, pos_temp_max] = min_max(temperature);
  64.     writeln(`Temperatura minima alle ${3*pos_temp_min}`);
  65.     writeln(`Temperatura massima alle ${3*pos_temp_max}`);
  66. //-------------------------------------------------------------------------
  67.    
  68.     let libro = {autore: {cognome: "Alessandro", nome:"Manzoni"},
  69.                  titolo: "I promessi sposi", nato_a: {nome: "Milano", nazione:"Italia"}};
  70.    
  71.     let { autore: {cognome: cognomeAutore, nome: nomeAutore}, titolo} = libro;
  72.     writeln(cognomeAutore);
  73.     writeln(nomeAutore);
  74.     //writeln(titolo);
  75.  
  76.     let {titolo: t2} = libro;  
  77.     //writeln(t2);
  78.  
  79.     ({titolo} = libro);
  80.     writeln(titolo);
  81.  
  82.     let JSON_string = `{
  83.     "data": {
  84.         "totalSamplesTested": "578841",
  85.         "totalConfirmedCases": 61307,
  86.         "totalActiveCases": 3627,
  87.         "discharged": 56557,
  88.         "death": 1123,
  89.         "states": [
  90.             {
  91.                
  92.                 "_id": "QFlGp4md3y",
  93.                 "confirmedCases": 5910,
  94.                 "casesOnAdmission": 542,
  95.                 "discharged": 5289,
  96.                 "death": 79
  97.             }
  98.         ]
  99.     }
  100. }`;
  101.  
  102. const obj = JSON.parse(JSON_string);
  103.  
  104. const {data: {states: [{state: nomeStato1 = "indefinito"}, stato2 = {} ]}} = obj;
  105. console.log(nomeStato1);
  106.  
  107. f({matricola: "AK456YT", cognome: "aldini", nazionalita: "Italia"});
  108.  
  109.  
  110. //function f(matricola, cognome, nome, CF, eta, nazionalita)
  111. function f(obj)
  112. {
  113.   const {
  114.     matricola = "non specificata",
  115.     cognome = "anonimo",
  116.     nome="anonimo",
  117.     CF="non specificato",
  118.     eta=0,
  119.     nazionalita="Italia"} = obj
  120.  
  121.     console.log(matricola);
  122.     console.log(nome);
  123.  
  124. }
  125.  
  126.  
  127.  
  128.  
  129.   function writeln(messaggio, separatore=false)
  130.   {
  131.      document.write(messaggio+"<br>");
  132.      if (separatore)
  133.        writeln("-".repeat(40));
  134.   }
  135.  
  136.  </script>
  137. </body>
  138. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement