| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | --- | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | id: 5ddb965c65d27e1512d44db8 | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | title: Part 33 | 
					
						
							|  |  |  | challengeType: 0 | 
					
						
							| 
									
										
										
										
											2021-01-13 03:31:00 +01:00
										 |  |  | dashedName: part-33 | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | # --description--
 | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | Inside the parentheses of `.createTextNode()`, add `+ ' Calorie '` after `Math.abs(difference))`. | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | # --hints--
 | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | See description above for instructions. | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | ```js | 
					
						
							|  |  |  | assert( | 
					
						
							|  |  |  |   /const\s*resultText\s*=\s*document\.createTextNode\(\s*Math\.abs\(\s*difference\s*\)\s*\+\s*[\'\"\`]\s*Calorie\s*[\'\"\`]\s*\)/.test( | 
					
						
							|  |  |  |     code | 
					
						
							|  |  |  |   ) | 
					
						
							|  |  |  | ); | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | # --seed--
 | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | ## --before-user-code--
 | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```html | 
					
						
							|  |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  |   <head> | 
					
						
							|  |  |  |     <meta charset="utf-8" /> | 
					
						
							|  |  |  |     <title></title> | 
					
						
							|  |  |  |     <meta name="description" content="" /> | 
					
						
							|  |  |  |     <meta name="viewport" content="width=device-width, initial-scale=1" /> | 
					
						
							|  |  |  |     <link rel="stylesheet" href="styles.css" /> | 
					
						
							|  |  |  |   </head> | 
					
						
							|  |  |  |   <body> | 
					
						
							|  |  |  |     <div class="container"> | 
					
						
							|  |  |  |       <form id="calorie-form"> | 
					
						
							|  |  |  |         <h2 class="center">Calorie Counter</h2> | 
					
						
							|  |  |  |         <div class="grid"> | 
					
						
							|  |  |  |           <legend>Sex</legend> | 
					
						
							|  |  |  |           <div> | 
					
						
							|  |  |  |             <input type="radio" name="sex" id="female" value="F" checked /> | 
					
						
							|  |  |  |             <label for="female"> | 
					
						
							|  |  |  |               Female (2,000 calories) | 
					
						
							|  |  |  |             </label> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             <div> | 
					
						
							|  |  |  |               <input type="radio" name="sex" id="male" value="M" /> | 
					
						
							|  |  |  |               <label for="male"> | 
					
						
							|  |  |  |                 Male (2,500 calories) | 
					
						
							|  |  |  |               </label> | 
					
						
							|  |  |  |             </div> | 
					
						
							|  |  |  |           </div> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |         <div class="grid" id="entries"> | 
					
						
							|  |  |  |           Breakfast | 
					
						
							|  |  |  |           <input | 
					
						
							|  |  |  |             type="number" | 
					
						
							|  |  |  |             min="0" | 
					
						
							|  |  |  |             class="cal-control" | 
					
						
							|  |  |  |             id="breakfast" | 
					
						
							|  |  |  |           /><br /> | 
					
						
							|  |  |  |           Lunch | 
					
						
							|  |  |  |           <input type="number" min="0" class="cal-control" id="lunch" /><br /> | 
					
						
							|  |  |  |           Dinner <input type="number" min="0" class="cal-control" id="dinner" /> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |         <button type="button" class="btn-add" id="add"> | 
					
						
							|  |  |  |           Add Entry | 
					
						
							|  |  |  |         </button> | 
					
						
							|  |  |  |         <button type="submit" class="btn-solid" id="calculate"> | 
					
						
							|  |  |  |           Calculate | 
					
						
							|  |  |  |         </button> | 
					
						
							|  |  |  |         <button type="button" class="btn-outline" id="clear"> | 
					
						
							|  |  |  |           Clear | 
					
						
							|  |  |  |         </button> | 
					
						
							|  |  |  |       </form> | 
					
						
							|  |  |  |       <div id="output"></div> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |   </body> | 
					
						
							|  |  |  | </html> | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | ## --after-user-code--
 | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```html | 
					
						
							|  |  |  |   </body> | 
					
						
							|  |  |  | </html> | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  | ## --seed-contents--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```html | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  |   document.getElementById('calorie-form').onsubmit = calculate; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   function calculate(e) { | 
					
						
							|  |  |  |     e.preventDefault(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const total = Array.from(document.getElementsByClassName('cal-control')) | 
					
						
							|  |  |  |       .map(meal => Number(meal.value)) | 
					
						
							|  |  |  |       .reduce((accumulator, currentValue) => accumulator + currentValue, 0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const maxCalories = document.getElementById('female').checked ? 2000 : 2500; | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  |     const difference = total - maxCalories; | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  |     const surplusOrDeficit = difference > 0 ? 'Surplus' : 'Deficit'; | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-27 19:02:05 +01:00
										 |  |  |     const output = document.getElementById('output'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const result = document.createElement('h3'); | 
					
						
							|  |  |  |     const resultText = document.createTextNode(Math.abs(difference)); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --solutions--
 | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```html | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  |   document.getElementById('calorie-form').onsubmit = calculate; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   function calculate(e) { | 
					
						
							|  |  |  |     e.preventDefault(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const total = Array.from(document.getElementsByClassName('cal-control')) | 
					
						
							|  |  |  |       .map(meal => Number(meal.value)) | 
					
						
							|  |  |  |       .reduce((accumulator, currentValue) => accumulator + currentValue, 0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const maxCalories = document.getElementById('female').checked ? 2000 : 2500; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const difference = total - maxCalories; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const surplusOrDeficit = difference > 0 ? 'Surplus' : 'Deficit'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const output = document.getElementById('output'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const result = document.createElement('h3'); | 
					
						
							|  |  |  |     const resultText = document.createTextNode( | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  |       Math.abs(difference) + ' Calorie ' | 
					
						
							| 
									
										
										
										
											2019-12-07 17:11:14 -07:00
										 |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | </script> | 
					
						
							|  |  |  | ``` |