72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | id: 587d7b89367417b2b2512b4b | ||
|  | title: Usare l'assegnazione destrutturante per assegnare variabili dagli array | ||
|  | challengeType: 1 | ||
|  | forumTopicId: 301213 | ||
|  | dashedName: use-destructuring-assignment-to-assign-variables-from-arrays | ||
|  | --- | ||
|  | 
 | ||
|  | # --description--
 | ||
|  | 
 | ||
|  | ES6 rende la destrutturazione degli array facile come quella degli oggetti. | ||
|  | 
 | ||
|  | Una differenza fondamentale tra l'operatore di diffusione e la destrutturazione dell'array è che l'operatore di diffusione spacchetta tutti i contenuti di un'array in una lista separata da virgole. Di conseguenza, non è possibile selezionare o scegliere quali elementi si desidera assegnare a delle variabili. | ||
|  | 
 | ||
|  | La destrutturazione di un array ci permette di fare esattamente questo: | ||
|  | 
 | ||
|  | ```js | ||
|  | const [a, b] = [1, 2, 3, 4, 5, 6]; | ||
|  | console.log(a, b); | ||
|  | ``` | ||
|  | 
 | ||
|  | La console mostrerà i valori di `a` e `b` come `1, 2`. | ||
|  | 
 | ||
|  | Alla variabile `a` viene assegnato il primo valore dell'array, e a `b` viene assegnato il secondo valore dell'array. Possiamo anche accedere al valore a qualsiasi indice di un array tramite destrutturazione, utilizzando le virgole per raggiungere l'indice desiderato: | ||
|  | 
 | ||
|  | ```js | ||
|  | const [a, b,,, c] = [1, 2, 3, 4, 5, 6]; | ||
|  | console.log(a, b, c); | ||
|  | ``` | ||
|  | 
 | ||
|  | La console mostrerà i valori di `a`, `b`, e `c` come `1, 2, 5`. | ||
|  | 
 | ||
|  | # --instructions--
 | ||
|  | 
 | ||
|  | Usa l'assegnazione destrutturante per scambiare i valori di `a` e `b` in modo che `a` riceva il valore memorizzato in `b`, e `b` riceva il valore memorizzato in `a`. | ||
|  | 
 | ||
|  | # --hints--
 | ||
|  | 
 | ||
|  | Il valore di `a` dovrebbe essere `6`, dopo lo scambio. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert(a === 6); | ||
|  | ``` | ||
|  | 
 | ||
|  | Il valore di `b` dovrebbe essere `8`, dopo lo scambio. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert(b === 8); | ||
|  | ``` | ||
|  | 
 | ||
|  | Dovresti usare la destrutturazione di array per scambiare `a` e `b`. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert(/\[\s*(\w)\s*,\s*(\w)\s*\]\s*=\s*\[\s*\2\s*,\s*\1\s*\]/g.test(code)); | ||
|  | ``` | ||
|  | 
 | ||
|  | # --seed--
 | ||
|  | 
 | ||
|  | ## --seed-contents--
 | ||
|  | 
 | ||
|  | ```js | ||
|  | let a = 8, b = 6; | ||
|  | // Only change code below this line | ||
|  | ``` | ||
|  | 
 | ||
|  | # --solutions--
 | ||
|  | 
 | ||
|  | ```js | ||
|  | let a = 8, b = 6; | ||
|  | [a, b] = [b, a]; | ||
|  | ``` |