142 lines
3.4 KiB
Markdown
142 lines
3.4 KiB
Markdown
|
---
|
||
|
id: 5ddb965c65d27e1512d44db0
|
||
|
title: Step 25
|
||
|
challengeType: 0
|
||
|
dashedName: step-25
|
||
|
---
|
||
|
|
||
|
# --description--
|
||
|
|
||
|
Use a ternary operator to assign the value of `maxCalories`. A ternary operator has the following syntax: `condition ? expressionTrue : expressionFalse`.
|
||
|
|
||
|
For example, `(5 - 3 === 4) ? "Yes" : "No"` does the same thing as the following if else statement:
|
||
|
|
||
|
```js
|
||
|
if (5 - 3 === 4) {
|
||
|
return 'Yes';
|
||
|
} else {
|
||
|
return 'No';
|
||
|
}
|
||
|
```
|
||
|
|
||
|
`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.
|
||
|
|
||
|
# --hints--
|
||
|
|
||
|
See description above for instructions.
|
||
|
|
||
|
```js
|
||
|
assert(
|
||
|
/const\s*maxCalories\s*=\s*document\.getElementById\([\'\"\`]female[\'\"\`]\)\.checked\s*\?\s*2000\s*\:\s*2500/.test(
|
||
|
code
|
||
|
)
|
||
|
);
|
||
|
```
|
||
|
|
||
|
# --seed--
|
||
|
|
||
|
## --before-user-code--
|
||
|
|
||
|
```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--
|
||
|
|
||
|
```html
|
||
|
</body>
|
||
|
</html>
|
||
|
```
|
||
|
|
||
|
## --seed-contents--
|
||
|
|
||
|
```html
|
||
|
<script>
|
||
|
document.getElementById('calorie-form').onsubmit = calculate;
|
||
|
|
||
|
--fcc-editable-region--
|
||
|
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;
|
||
|
}
|
||
|
--fcc-editable-region--
|
||
|
</script>
|
||
|
```
|
||
|
|
||
|
# --solutions--
|
||
|
|
||
|
```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>
|
||
|
```
|