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:

  1. Vráťte pole s názvami všetkých krajín.
  2. Vráťte pole s názvami európskych krajín.
  3. 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' },
      ... ]
  4. 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'},
      ...   ]
  5. 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',...],
      ...   }
  6. 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',...]},
      ...   ]
  7. 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 },
          ...   ]
  8. Postupne vytvorte nasledovné funkcie a zreťazte ich cez pipe/flow:
    1. 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.
    2. 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,
              ...}
    3. 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 },
            ...]
    4. Vytvorte funkciu sortArray, ktorá vezme výsledok predošlej metódy a usporiada ho od najväčších po najmenšie počty.
    5. 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.
    6. 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“.
    7. 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
            ...