7. Higher-order funkcie v poliach II
Vysvetlíme si ďalšie higher-order funkcie v poliach - flat, flatMap, reduce a reduceRight. Budeme pracovať s JSON dokumentom countries.json, podľa úloh uvedených nižšie.
Úlohy:
- 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 }, ... ]