freeCodeCamp/curriculum/challenges/english/02-javascript-algorithms-an.../intermediate-javascript-cal.../part-025.md

140 lines
3.3 KiB
Markdown
Raw Normal View History

2019-12-08 00:11:14 +00:00
---
id: 5ddb965c65d27e1512d44db0
2019-12-08 00:11:14 +00:00
title: Part 25
challengeType: 0
dashedName: part-25
2019-12-08 00:11:14 +00:00
---
# --description--
2019-12-08 00:11:14 +00:00
Use a ternary operator to assign the value of `maxCalories`. A ternary operator has the following syntax: `condition ? expressionTrue : expressionFalse`.
2019-12-08 00:11:14 +00:00
For example, `(5 - 3 === 4) ? "Yes" : "No"` does the same thing as the following if else statement:
2019-12-08 00:11:14 +00:00
```js
if (5 - 3 === 4) {
return 'Yes';
} else {
return 'No';
}
```
2019-12-08 00:11:14 +00:00
`document.getElementById('female').checked` will return either `true` if it is checked or `false` if it isn't. Use a ternary operator to return 2000 if it is is checked and 2500 if it is not.
2019-12-08 00:11:14 +00:00
# --hints--
2019-12-08 00:11:14 +00:00
See description above for instructions.
2019-12-08 00:11:14 +00:00
```js
assert(
/const\s*maxCalories\s*=\s*document\.getElementById\([\'\"\`]female[\'\"\`]\)\.checked\s*\?\s*2000\s*\:\s*2500/.test(
code
)
);
2019-12-08 00:11:14 +00:00
```
# --seed--
2019-12-08 00:11:14 +00:00
## --before-user-code--
2019-12-08 00:11:14 +00: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>
```
## --after-user-code--
2019-12-08 00:11:14 +00:00
```html
</body>
</html>
```
## --seed-contents--
2019-12-08 00:11:14 +00:00
```html
<script>
document.getElementById('calorie-form').onsubmit = calculate;
2019-12-08 00:11:14 +00:00
function calculate(e) {
e.preventDefault();
2019-12-08 00:11:14 +00:00
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;
}
</script>
```
# --solutions--
2019-12-08 00:11:14 +00: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;
}
</script>
```