Takie ćwiczenie na CodeCademy (część ścieżki więc konieczne do zaliczenia całości)
utwórz funkcję, lifePhase()
, która na podstawie liczby age
, as zwróci opisowy wiek.
Schemat:
0-3 'baby'
4-12 'child'
13-19 'teen'
20-64 'adult'
65-140 'senior citizen'
jeśli liczba jest mniejsza od 0 lub większa od 140 - 'This is not a valid age'
Czasami przy takich rzeczach korzystam z podpowiedzi i zamiast pisać coś prostego wolę to skopiować i wkleić
Tym razem hint to:
Musisz wielokrotnie wykorzystać if
statements.
nie pamiętam czy na tym etapie kursu pojawiły się już shorthandy ale spróbuję sobie odświeżyć:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function lifePhase(age) {
return 0 > age || age > 140
? "This is not a valid age"
: age < 4
? "baby"
: age < 13
? "child"
: age < 20
? "teen"
: age < 65
? "adult"
: "senior citizen";
}
|
https://www.sitepoint.com/shorthand-javascript-techniques/
chyba jednak shorthandy musiały się pojawić bo gdzieś dalej jest;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
const truthyOrFalsy = (value) => {
if (value) {
return true;
}
return false;
};
// As a function declaration:
function truthyOrFalsy(value) {
if (value) {
return true;
} else {
return false;
}
}
// Using a ternary:
const truthyOrFalsy = (value) => (value ? true : false);
|
a nawet coś w rodzaju:
1
2
|
const motivateMe = (adjective, verb, noun) =>
`I am so ${adjective} because I ${verb} shorthands! Time to refactor some more long ${noun}!`;
|
a zaraz potem wyjaśnienie że deklaracja funkcji albo łączenie łańcuchów znaków (concatenation) też jest ok. (tylko że tak samo bolesne jak napisanie “łączenie łańcuchów znaków”)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
const howOld = (age, year) => {
// jaki mamy rok?
let dateToday = new Date();
let thisYear = dateToday.getFullYear();
const yeardiff = year - thisYear;
const newAge = age + yeardiff;
if (newAge < 0) {
return `The year ${year} was ${-newAge} years before you were born`;
} else if (newAge > age) {
return `You will be ${newAge} in the year ${year}`;
} else {
return `You were ${newAge} in the year ${year}`;
}
};
|