Táto stránka obsahuje príkazy a zadania pre 1. a 2. cvičenie.
Inštalácia
npm init –yes
npm i node lodash
npm i typescript tsc-watch @types/node @types/lodash -save-dev
v súbore package.json napíšeme start script:
"./node_modules/.bin/tsc-watch --onSuccess \"node ./dist/\""
vytvoríme súbor tsconfig.json
{ "compilerOptions": { "target": "esnext", "module": "commonjs", "outDir": "dist", "sourceMap": true, "types": ["node"], "resolveJsonModule": true }, "include": ["src/**/*.ts"], "exclude": ["node_modules"] }
Zadanie
Skonvertujte JSON dokument countries.json podľa úloh uvedených nižšie.
Úlohy:
- Vráťte pole s názvami všetkých krajín.
- Vráťte pole s názvami európskych krajín.
- Vráťte pole objektov s vlastnosťami name a area, popisujúce krajiny s počtom obyvateľov nad 100 miliónov, teda:
[ { name: 'Bangladesh', area: '147570 km2' }, { name: 'Brazil', area: '8515767 km2' }, { name: 'China', area: '9640011 km2' }, ... ]
- Vráťte pole všetkých jazykov, ktoré sa používajú Južnej Amerike bez duplicít, teda:
[ { iso639_1: 'es', iso639_2: 'spa', name: 'Spanish', nativeName: 'Español' }, { iso639_1: 'gn', iso639_2: 'grn', name: 'Guaraní', nativeName: "Avañe'ẽ" }, { iso639_1: 'ay', iso639_2: 'aym', name: 'Aymara', nativeName: 'aymar aru'}, ... ]
- Vráťte objekt, kde vlastnosti sú jazyky z Južnej Ameriky a ich hodnotami polia krajín z Južnej Ameriky, v ktorých sa nimi hovorí, teda:
{ Spanish: ['Argentina', 'Bolivia (Plurinational State of)', 'Chile',...], Portuguese: [ 'Brazil' ], English: [ 'Falkland Islands (Malvinas)', 'Guyana',...], ... }
- Vráťte pole objektov s dvoma vlastnosťami, jazyk z Južnej Ameriky a krajiny z Južnej Ameriky, v ktorých sa ním hovorí, teda:
[ { language: 'Spanish', countries: ['Argentina', 'Bolivia (Plurinational State of)', 'Chile',...]}, { language: 'Portuguese', countries: [ 'Brazil' ]}, { language: 'English', countries: [ 'Falkland Islands (Malvinas)', 'Guyana',...]}, ... ]
- Vráťte pre každú menu, ktorá sa používa aspoň v 5 krajinách, krajiny, v ktorých sa ňou platí a ich počet. Výsledkom je usporiadané pole od najmenej používaných po najviac používané meny, teda:
[ { currency: 'New Zealand dollar'," countries: [ 'Cook Islands', 'New Zealand', 'Niue', 'Pitcairn', 'Tokelau' ], count: 5 }, { currency: 'Central African CFA franc', countries: ['Cameroon', 'Central African Republic', 'Chad', 'Congo', 'Equatorial Guinea', 'Gabon'], count: 6 }, ... ]
- Postupne vytvorte nasledovné funkcie a zreťazte ich cez pipe/flow:
- Vytvorte funkciu languageToCountArray, ktorá vráti pre každý výskyt jazyka objekt s názvom jazyka a počtom obyvateľov krajiny, kde ste tento jazyk našli.
- Vytvorte funkciu languageToCountObject, ktorá vezme výsledok predošlej metódy a vráti objekt, kde vlastnosti sú jazyky a hodnotu sú súčty počtov obyvateľov pre jednotlivé jazyky.
{ Pashto: 27657145, Uzbek: 59233545, Turkmen: 32408265, Swedish: 15415580, ...}
- Vytvorte funkciu arrayOfLanguages, ktorá vezme výsledok predošlej metódy a vráti pole, v ktorom pre každý jazyk máme objekt s názvom jazyka a počtom obyvateľov, ktorý týmto jazykom rozprávajú (predpokladáme, že každý obyvateľ, ktorý žije v krajine, kde sa používa, túto reč ovláda).
[ { language: 'Pashto', count: 27657145 }, { language: 'Uzbek', count: 59233545 }, { language: 'Turkmen', count: 32408265 }, ...]
- Vytvorte funkciu sortArray, ktorá vezme výsledok predošlej metódy a usporiada ho od najväčších po najmenšie počty.
- Vytvorte funkciu topTen, ktorá vezme výsledok predošlej metódy a vráti pole iba prvých 10 objektov z pôvodného poľa.
- Vytvorte funkciu humanReadable, ktorá vezme výsledok predošlej metódy a vráti podobné pole, ale počty sú uvedené ako reťazce v tvare napr. „1.414 mld“, teda číslo v miliardách zaokrúhlené na milióny a s pridaným reťazcom “ mld“.
- Vytvorte funkciu toString, ktorá vezme výsledok predošlej metódy a vráti reťazec obsahujúci výslednú tabuľku najpoužívanejších 10 jazykov aj s počtom ľudí teda:
English: 2.655 mld Chinese: 1.414 mld Hindi: 1.296 mld ...