113 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			113 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | id: 587d7b7d367417b2b2512b1f | ||
|  | title: Modificare un array memorizzato in un oggetto | ||
|  | challengeType: 1 | ||
|  | forumTopicId: 301163 | ||
|  | dashedName: modify-an-array-stored-in-an-object | ||
|  | --- | ||
|  | 
 | ||
|  | # --description--
 | ||
|  | 
 | ||
|  | Adesso hai visto tutte le operazioni di base per gli oggetti JavaScript. Puoi aggiungere, modificare e rimuovere coppie chiave-valore, controllare se una proprietà esiste e iterare su tutte le chiavi di un oggetto. Continuando a conoscere JavaScript vedrai applicazioni ancora più versatili degli oggetti. Inoltre, le lezioni di Strutture Dati nella sezione Colloquio di Lavoro per Programmatori del curriculum coprono anche gli oggetti ES6 <dfn>Map</dfn> e <dfn>Set</dfn>, entrambi i quali sono simili a oggetti ordinari, ma forniscono alcune caratteristiche aggiuntive. Ora che hai imparato le basi di array e oggetti, sei pienamente preparato per iniziare ad affrontare problemi più complessi utilizzando JavaScript! | ||
|  | 
 | ||
|  | # --instructions--
 | ||
|  | 
 | ||
|  | Dai un'occhiata all'oggetto che abbiamo fornito nell'editor di codice. L'oggetto `user` contiene tre chiavi. La chiave `data` contiene cinque chiavi, una delle quali contiene un array di `friends` (amici). Da questo puoi vedere quanto gli oggetti siano flessibili come strutture di dati. Abbiamo iniziato a scrivere una funzione `addFriend`. Finisci di scriverla in modo che prenda un oggetto `user`, aggiunga il nome dell'argomento `friend` all'array memorizzato in `user.data.friends` e restituisca questo array. | ||
|  | 
 | ||
|  | # --hints--
 | ||
|  | 
 | ||
|  | L'oggetto `user` dovrebbe avere le chiavi `name`, `age` e `data`. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert('name' in user && 'age' in user && 'data' in user); | ||
|  | ``` | ||
|  | 
 | ||
|  | La funzione `addFriend` dovrebbe ricevere un oggetto `user` e una stringa `friend` come argomenti e aggiungere l'amico all'array `friends` nell'oggetto `user`. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert( | ||
|  |   (function () { | ||
|  |     let L1 = user.data.friends.length; | ||
|  |     addFriend(user, 'Sean'); | ||
|  |     let L2 = user.data.friends.length; | ||
|  |     return L2 === L1 + 1; | ||
|  |   })() | ||
|  | ); | ||
|  | ``` | ||
|  | 
 | ||
|  | `addFriend(user, "Pete")` dovrebbe restituire `["Sam", "Kira", "Tomo", "Pete"]`. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert.deepEqual( | ||
|  |   (function () { | ||
|  |     delete user.data.friends; | ||
|  |     user.data.friends = ['Sam', 'Kira', 'Tomo']; | ||
|  |     return addFriend(user, 'Pete'); | ||
|  |   })(), | ||
|  |   ['Sam', 'Kira', 'Tomo', 'Pete'] | ||
|  | ); | ||
|  | ``` | ||
|  | 
 | ||
|  | # --seed--
 | ||
|  | 
 | ||
|  | ## --seed-contents--
 | ||
|  | 
 | ||
|  | ```js | ||
|  | let user = { | ||
|  |   name: 'Kenneth', | ||
|  |   age: 28, | ||
|  |   data: { | ||
|  |     username: 'kennethCodesAllDay', | ||
|  |     joinDate: 'March 26, 2016', | ||
|  |     organization: 'freeCodeCamp', | ||
|  |     friends: [ | ||
|  |       'Sam', | ||
|  |       'Kira', | ||
|  |       'Tomo' | ||
|  |     ], | ||
|  |     location: { | ||
|  |       city: 'San Francisco', | ||
|  |       state: 'CA', | ||
|  |       country: 'USA' | ||
|  |     } | ||
|  |   } | ||
|  | }; | ||
|  | 
 | ||
|  | function addFriend(userObj, friend) { | ||
|  |   // Only change code below this line | ||
|  | 
 | ||
|  |   // Only change code above this line | ||
|  | } | ||
|  | 
 | ||
|  | console.log(addFriend(user, 'Pete')); | ||
|  | ``` | ||
|  | 
 | ||
|  | # --solutions--
 | ||
|  | 
 | ||
|  | ```js | ||
|  | let user = { | ||
|  |   name: 'Kenneth', | ||
|  |   age: 28, | ||
|  |   data: { | ||
|  |     username: 'kennethCodesAllDay', | ||
|  |     joinDate: 'March 26, 2016', | ||
|  |     organization: 'freeCodeCamp', | ||
|  |     friends: [ | ||
|  |       'Sam', | ||
|  |       'Kira', | ||
|  |       'Tomo' | ||
|  |     ], | ||
|  |     location: { | ||
|  |       city: 'San Francisco', | ||
|  |       state: 'CA', | ||
|  |       country: 'USA' | ||
|  |     } | ||
|  |   } | ||
|  | }; | ||
|  | 
 | ||
|  | function addFriend(userObj, friend) { | ||
|  |   userObj.data.friends.push(friend); | ||
|  |   return userObj.data.friends; | ||
|  | } | ||
|  | ``` |