2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								id: 587d7b89367417b2b2512b4a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								title: Use Destructuring Assignment to Assign Variables from Nested Objects
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								challengeType: 1
							 
						 
					
						
							
								
									
										
										
										
											2019-08-05 09:17:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								forumTopicId: 301214
							 
						 
					
						
							
								
									
										
										
										
											2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Description
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< section  id = 'description' >  
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								You can use the same principles from the previous two lessons to destructure values from nested objects.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-20 09:28:53 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Using an object similar to previous examples:
							 
						 
					
						
							
								
									
										
										
										
											2019-05-17 06:20:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const user = {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  johnDoe: { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    age: 34,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    email: 'johnDoe@freeCodeCamp .com'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
									
										
										
										
											2019-05-17 06:20:30 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-26 22:00:32 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Here's how to extract the values of object properties and assign them to variables with the same name:
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const { johnDoe: { age, email }} = user;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-26 22:00:32 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								And here's how you can assign an object properties' values to variables with different names:
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const { johnDoe: { age: userAge, email: userEmail }} = user;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / section >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Instructions
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< section  id = 'instructions' >  
						 
					
						
							
								
									
										
										
										
											2019-06-20 09:29:06 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Replace the two assignments with an equivalent destructuring assignment. It should still assign the variables < code > lowToday< / code >  and < code > highToday< / code >  the values of < code > today.low< / code >  and < code > today.high< / code >  from the < code > LOCAL_FORECAST< / code >  object.
							 
						 
					
						
							
								
									
										
										
										
											2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / section >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Tests
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< section  id = 'tests' >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```yml
							 
						 
					
						
							
								
									
										
										
										
											2018-10-04 14:37:37 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								tests:
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -  text: You should remove the ES5 assignment syntax.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    testString: assert(!code.match(/lowToday = LOCAL_FORECAST\.today\.low/g) &&  !code.match(/highToday = LOCAL_FORECAST\.today.high/g))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  text: You should use destructuring to create the < code > lowToday</ code >  variable.
							 
						 
					
						
							
								
									
										
										
										
											2019-06-20 08:58:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    testString: assert(code.match(/(var|const|let)\s*{\s*today\s*:\s*{\s*(low\s*:\s*lowToday[^}]*|[^,]*,\s*low\s*:\s*lowToday\s*)}\s*}\s*=\s*LOCAL_FORECAST(;|\s+|\/\/)/g));
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  -  text: You should use destructuring to create the < code > highToday</ code >  variable.
							 
						 
					
						
							
								
									
										
										
										
											2019-06-20 08:58:41 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    testString: assert(code.match(/(var|const|let)\s*{\s*today\s*:\s*{\s*(high\s*:\s*highToday[^}]*|[^,]*,\s*high\s*:\s*highToday\s*)}\s*}\s*=\s*LOCAL_FORECAST(;|\s+|\/\/)/g));
							 
						 
					
						
							
								
									
										
										
										
											2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / section >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Challenge Seed
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< section  id = 'challengeSeed' >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< div  id = 'js-seed' >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const LOCAL_FORECAST = {
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  yesterday: { low: 61, high: 75 },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  today: { low: 64, high: 77 },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  tomorrow: { low: 68, high: 80 }
							 
						 
					
						
							
								
									
										
										
										
											2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// change code below this line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const lowToday = LOCAL_FORECAST.today.low;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const highToday = LOCAL_FORECAST.today.high;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// change code above this line
							 
						 
					
						
							
								
									
										
										
										
											2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								console.log(lowToday); // should be 64
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								console.log(highToday); // should be 77
							 
						 
					
						
							
								
									
										
										
										
											2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / div >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< / section >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Solution
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< section  id = 'solution' >  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
									
										
										
										
											2018-10-14 11:34:44 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const LOCAL_FORECAST = {
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  yesterday: { low: 61, high: 75 },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  today: { low: 64, high: 77 },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  tomorrow: { low: 68, high: 80 }
							 
						 
					
						
							
								
									
										
										
										
											2018-10-14 11:34:44 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// change code below this line
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2019-06-08 15:46:28 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const { today: { low: lowToday, high: highToday }} = LOCAL_FORECAST;
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// change code above this line
							 
						 
					
						
							
								
									
										
										
										
											2018-10-14 11:34:44 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-06-07 10:19:03 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								console.log(highToday); // should be 77
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								console.log(highTomorrow); // should be 80
							 
						 
					
						
							
								
									
										
										
										
											2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2019-07-18 08:24:12 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-30 23:01:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< / section >