From 29bb42d8b965d76e37683d0b214ab925c8051085 Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Mon, 13 Jan 2020 01:19:10 +0200 Subject: [PATCH 01/21] day 12 --- .gitignore | 1 - 10_Day/10_day_starter/data/countries_data.js | 2013 ++++++++++++++++++ 10_Day/10_day_starter/index.html | 17 + 10_Day/10_day_starter/scripts/main.js | 2 + 11_Day/11_day_starter/data/countries_data.js | 2013 ++++++++++++++++++ 11_Day/11_day_starter/index.html | 17 + 11_Day/11_day_starter/scripts/main.js | 2 + 11_Day/11_destructuring_and_spread.md | 5 +- 12_Day/12_day_regular_expressions.md | 500 +++++ 12_Day/12_day_starter/data/countries_data.js | 2013 ++++++++++++++++++ 12_Day/12_day_starter/index.html | 17 + 12_Day/12_day_starter/scripts/main.js | 2 + images/regex.png | Bin 0 -> 85172 bytes 13 files changed, 6599 insertions(+), 3 deletions(-) create mode 100644 10_Day/10_day_starter/data/countries_data.js create mode 100644 10_Day/10_day_starter/index.html create mode 100644 10_Day/10_day_starter/scripts/main.js create mode 100644 11_Day/11_day_starter/data/countries_data.js create mode 100644 11_Day/11_day_starter/index.html create mode 100644 11_Day/11_day_starter/scripts/main.js create mode 100644 12_Day/12_day_regular_expressions.md create mode 100644 12_Day/12_day_starter/data/countries_data.js create mode 100644 12_Day/12_day_starter/index.html create mode 100644 12_Day/12_day_starter/scripts/main.js create mode 100644 images/regex.png diff --git a/.gitignore b/.gitignore index cdf6fd9..b87aa86 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,6 @@ day9.md day10.md 01_02_03_days_backup.md test.md -12_Day 13_Day 14_Day 15_Day diff --git a/10_Day/10_day_starter/data/countries_data.js b/10_Day/10_day_starter/data/countries_data.js new file mode 100644 index 0000000..92acddd --- /dev/null +++ b/10_Day/10_day_starter/data/countries_data.js @@ -0,0 +1,2013 @@ +const countries = [ + { + name: 'Afghanistan', + capital: 'Kabul', + languages: ['Pashto', 'Uzbek', 'Turkmen'], + population: 27657145, + flag: 'https://restcountries.eu/data/afg.svg', + currency: 'Afghan afghani' + }, + { + name: 'Åland Islands', + capital: 'Mariehamn', + languages: ['Swedish'], + population: 28875, + flag: 'https://restcountries.eu/data/ala.svg', + currency: 'Euro' + }, + { + name: 'Albania', + capital: 'Tirana', + languages: ['Albanian'], + population: 2886026, + flag: 'https://restcountries.eu/data/alb.svg', + currency: 'Albanian lek' + }, + { + name: 'Algeria', + capital: 'Algiers', + languages: ['Arabic'], + population: 40400000, + flag: 'https://restcountries.eu/data/dza.svg', + currency: 'Algerian dinar' + }, + { + name: 'American Samoa', + capital: 'Pago Pago', + languages: ['English', 'Samoan'], + population: 57100, + flag: 'https://restcountries.eu/data/asm.svg', + currency: 'United State Dollar' + }, + { + name: 'Andorra', + capital: 'Andorra la Vella', + languages: ['Catalan'], + population: 78014, + flag: 'https://restcountries.eu/data/and.svg', + currency: 'Euro' + }, + { + name: 'Angola', + capital: 'Luanda', + languages: ['Portuguese'], + population: 25868000, + flag: 'https://restcountries.eu/data/ago.svg', + currency: 'Angolan kwanza' + }, + { + name: 'Anguilla', + capital: 'The Valley', + languages: ['English'], + population: 13452, + flag: 'https://restcountries.eu/data/aia.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Antarctica', + capital: '', + languages: ['English', 'Russian'], + population: 1000, + flag: 'https://restcountries.eu/data/ata.svg', + currency: 'Australian dollar' + }, + { + name: 'Antigua and Barbuda', + capital: "Saint John's", + languages: ['English'], + population: 86295, + flag: 'https://restcountries.eu/data/atg.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Argentina', + capital: 'Buenos Aires', + languages: ['Spanish', 'Guaraní'], + population: 43590400, + flag: 'https://restcountries.eu/data/arg.svg', + currency: 'Argentine peso' + }, + { + name: 'Armenia', + capital: 'Yerevan', + languages: ['Armenian', 'Russian'], + population: 2994400, + flag: 'https://restcountries.eu/data/arm.svg', + currency: 'Armenian dram' + }, + { + name: 'Aruba', + capital: 'Oranjestad', + languages: ['Dutch', '(Eastern) Punjabi'], + population: 107394, + flag: 'https://restcountries.eu/data/abw.svg', + currency: 'Aruban florin' + }, + { + name: 'Australia', + capital: 'Canberra', + languages: ['English'], + population: 24117360, + flag: 'https://restcountries.eu/data/aus.svg', + currency: 'Australian dollar' + }, + { + name: 'Austria', + capital: 'Vienna', + languages: ['German'], + population: 8725931, + flag: 'https://restcountries.eu/data/aut.svg', + currency: 'Euro' + }, + { + name: 'Azerbaijan', + capital: 'Baku', + languages: ['Azerbaijani'], + population: 9730500, + flag: 'https://restcountries.eu/data/aze.svg', + currency: 'Azerbaijani manat' + }, + { + name: 'Bahamas', + capital: 'Nassau', + languages: ['English'], + population: 378040, + flag: 'https://restcountries.eu/data/bhs.svg', + currency: 'Bahamian dollar' + }, + { + name: 'Bahrain', + capital: 'Manama', + languages: ['Arabic'], + population: 1404900, + flag: 'https://restcountries.eu/data/bhr.svg', + currency: 'Bahraini dinar' + }, + { + name: 'Bangladesh', + capital: 'Dhaka', + languages: ['Bengali'], + population: 161006790, + flag: 'https://restcountries.eu/data/bgd.svg', + currency: 'Bangladeshi taka' + }, + { + name: 'Barbados', + capital: 'Bridgetown', + languages: ['English'], + population: 285000, + flag: 'https://restcountries.eu/data/brb.svg', + currency: 'Barbadian dollar' + }, + { + name: 'Belarus', + capital: 'Minsk', + languages: ['Belarusian', 'Russian'], + population: 9498700, + flag: 'https://restcountries.eu/data/blr.svg', + currency: 'New Belarusian ruble' + }, + { + name: 'Belgium', + capital: 'Brussels', + languages: ['Dutch', 'French', 'German'], + population: 11319511, + flag: 'https://restcountries.eu/data/bel.svg', + currency: 'Euro' + }, + { + name: 'Belize', + capital: 'Belmopan', + languages: ['English', 'Spanish'], + population: 370300, + flag: 'https://restcountries.eu/data/blz.svg', + currency: 'Belize dollar' + }, + { + name: 'Benin', + capital: 'Porto-Novo', + languages: ['French'], + population: 10653654, + flag: 'https://restcountries.eu/data/ben.svg', + currency: 'West African CFA franc' + }, + { + name: 'Bermuda', + capital: 'Hamilton', + languages: ['English'], + population: 61954, + flag: 'https://restcountries.eu/data/bmu.svg', + currency: 'Bermudian dollar' + }, + { + name: 'Bhutan', + capital: 'Thimphu', + languages: ['Dzongkha'], + population: 775620, + flag: 'https://restcountries.eu/data/btn.svg', + currency: 'Bhutanese ngultrum' + }, + { + name: 'Bolivia (Plurinational State of)', + capital: 'Sucre', + languages: ['Spanish', 'Aymara', 'Quechua'], + population: 10985059, + flag: 'https://restcountries.eu/data/bol.svg', + currency: 'Bolivian boliviano' + }, + { + name: 'Bonaire, Sint Eustatius and Saba', + capital: 'Kralendijk', + languages: ['Dutch'], + population: 17408, + flag: 'https://restcountries.eu/data/bes.svg', + currency: 'United States dollar' + }, + { + name: 'Bosnia and Herzegovina', + capital: 'Sarajevo', + languages: ['Bosnian', 'Croatian', 'Serbian'], + population: 3531159, + flag: 'https://restcountries.eu/data/bih.svg', + currency: 'Bosnia and Herzegovina convertible mark' + }, + { + name: 'Botswana', + capital: 'Gaborone', + languages: ['English', 'Tswana'], + population: 2141206, + flag: 'https://restcountries.eu/data/bwa.svg', + currency: 'Botswana pula' + }, + { + name: 'Bouvet Island', + capital: '', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 0, + flag: 'https://restcountries.eu/data/bvt.svg', + currency: 'Norwegian krone' + }, + { + name: 'Brazil', + capital: 'Brasília', + languages: ['Portuguese'], + population: 206135893, + flag: 'https://restcountries.eu/data/bra.svg', + currency: 'Brazilian real' + }, + { + name: 'British Indian Ocean Territory', + capital: 'Diego Garcia', + languages: ['English'], + population: 3000, + flag: 'https://restcountries.eu/data/iot.svg', + currency: 'United States dollar' + }, + { + name: 'United States Minor Outlying Islands', + capital: '', + languages: ['English'], + population: 300, + flag: 'https://restcountries.eu/data/umi.svg', + currency: 'United States Dollar' + }, + { + name: 'Virgin Islands (British)', + capital: 'Road Town', + languages: ['English'], + population: 28514, + flag: 'https://restcountries.eu/data/vgb.svg', + currency: '[D]' + }, + { + name: 'Virgin Islands (U.S.)', + capital: 'Charlotte Amalie', + languages: ['English'], + population: 114743, + flag: 'https://restcountries.eu/data/vir.svg', + currency: 'United States dollar' + }, + { + name: 'Brunei Darussalam', + capital: 'Bandar Seri Begawan', + languages: ['Malay'], + population: 411900, + flag: 'https://restcountries.eu/data/brn.svg', + currency: 'Brunei dollar' + }, + { + name: 'Bulgaria', + capital: 'Sofia', + languages: ['Bulgarian'], + population: 7153784, + flag: 'https://restcountries.eu/data/bgr.svg', + currency: 'Bulgarian lev' + }, + { + name: 'Burkina Faso', + capital: 'Ouagadougou', + languages: ['French', 'Fula'], + population: 19034397, + flag: 'https://restcountries.eu/data/bfa.svg', + currency: 'West African CFA franc' + }, + { + name: 'Burundi', + capital: 'Bujumbura', + languages: ['French', 'Kirundi'], + population: 10114505, + flag: 'https://restcountries.eu/data/bdi.svg', + currency: 'Burundian franc' + }, + { + name: 'Cambodia', + capital: 'Phnom Penh', + languages: ['Khmer'], + population: 15626444, + flag: 'https://restcountries.eu/data/khm.svg', + currency: 'Cambodian riel' + }, + { + name: 'Cameroon', + capital: 'Yaoundé', + languages: ['English', 'French'], + population: 22709892, + flag: 'https://restcountries.eu/data/cmr.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Canada', + capital: 'Ottawa', + languages: ['English', 'French'], + population: 36155487, + flag: 'https://restcountries.eu/data/can.svg', + currency: 'Canadian dollar' + }, + { + name: 'Cabo Verde', + capital: 'Praia', + languages: ['Portuguese'], + population: 531239, + flag: 'https://restcountries.eu/data/cpv.svg', + currency: 'Cape Verdean escudo' + }, + { + name: 'Cayman Islands', + capital: 'George Town', + languages: ['English'], + population: 58238, + flag: 'https://restcountries.eu/data/cym.svg', + currency: 'Cayman Islands dollar' + }, + { + name: 'Central African Republic', + capital: 'Bangui', + languages: ['French', 'Sango'], + population: 4998000, + flag: 'https://restcountries.eu/data/caf.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chad', + capital: "N'Djamena", + languages: ['French', 'Arabic'], + population: 14497000, + flag: 'https://restcountries.eu/data/tcd.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chile', + capital: 'Santiago', + languages: ['Spanish'], + population: 18191900, + flag: 'https://restcountries.eu/data/chl.svg', + currency: 'Chilean peso' + }, + { + name: 'China', + capital: 'Beijing', + languages: ['Chinese'], + population: 1377422166, + flag: 'https://restcountries.eu/data/chn.svg', + currency: 'Chinese yuan' + }, + { + name: 'Christmas Island', + capital: 'Flying Fish Cove', + languages: ['English'], + population: 2072, + flag: 'https://restcountries.eu/data/cxr.svg', + currency: 'Australian dollar' + }, + { + name: 'Cocos (Keeling) Islands', + capital: 'West Island', + languages: ['English'], + population: 550, + flag: 'https://restcountries.eu/data/cck.svg', + currency: 'Australian dollar' + }, + { + name: 'Colombia', + capital: 'Bogotá', + languages: ['Spanish'], + population: 48759958, + flag: 'https://restcountries.eu/data/col.svg', + currency: 'Colombian peso' + }, + { + name: 'Comoros', + capital: 'Moroni', + languages: ['Arabic', 'French'], + population: 806153, + flag: 'https://restcountries.eu/data/com.svg', + currency: 'Comorian franc' + }, + { + name: 'Congo', + capital: 'Brazzaville', + languages: ['French', 'Lingala'], + population: 4741000, + flag: 'https://restcountries.eu/data/cog.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Congo (Democratic Republic of the)', + capital: 'Kinshasa', + languages: ['French', 'Lingala', 'Kongo', 'Swahili', 'Luba-Katanga'], + population: 85026000, + flag: 'https://restcountries.eu/data/cod.svg', + currency: 'Congolese franc' + }, + { + name: 'Cook Islands', + capital: 'Avarua', + languages: ['English'], + population: 18100, + flag: 'https://restcountries.eu/data/cok.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Costa Rica', + capital: 'San José', + languages: ['Spanish'], + population: 4890379, + flag: 'https://restcountries.eu/data/cri.svg', + currency: 'Costa Rican colón' + }, + { + name: 'Croatia', + capital: 'Zagreb', + languages: ['Croatian'], + population: 4190669, + flag: 'https://restcountries.eu/data/hrv.svg', + currency: 'Croatian kuna' + }, + { + name: 'Cuba', + capital: 'Havana', + languages: ['Spanish'], + population: 11239004, + flag: 'https://restcountries.eu/data/cub.svg', + currency: 'Cuban convertible peso' + }, + { + name: 'Curaçao', + capital: 'Willemstad', + languages: ['Dutch', '(Eastern) Punjabi', 'English'], + population: 154843, + flag: 'https://restcountries.eu/data/cuw.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Cyprus', + capital: 'Nicosia', + languages: ['Greek (modern)', 'Turkish', 'Armenian'], + population: 847000, + flag: 'https://restcountries.eu/data/cyp.svg', + currency: 'Euro' + }, + { + name: 'Czech Republic', + capital: 'Prague', + languages: ['Czech', 'Slovak'], + population: 10558524, + flag: 'https://restcountries.eu/data/cze.svg', + currency: 'Czech koruna' + }, + { + name: 'Denmark', + capital: 'Copenhagen', + languages: ['Danish'], + population: 5717014, + flag: 'https://restcountries.eu/data/dnk.svg', + currency: 'Danish krone' + }, + { + name: 'Djibouti', + capital: 'Djibouti', + languages: ['French', 'Arabic'], + population: 900000, + flag: 'https://restcountries.eu/data/dji.svg', + currency: 'Djiboutian franc' + }, + { + name: 'Dominica', + capital: 'Roseau', + languages: ['English'], + population: 71293, + flag: 'https://restcountries.eu/data/dma.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Dominican Republic', + capital: 'Santo Domingo', + languages: ['Spanish'], + population: 10075045, + flag: 'https://restcountries.eu/data/dom.svg', + currency: 'Dominican peso' + }, + { + name: 'Ecuador', + capital: 'Quito', + languages: ['Spanish'], + population: 16545799, + flag: 'https://restcountries.eu/data/ecu.svg', + currency: 'United States dollar' + }, + { + name: 'Egypt', + capital: 'Cairo', + languages: ['Arabic'], + population: 91290000, + flag: 'https://restcountries.eu/data/egy.svg', + currency: 'Egyptian pound' + }, + { + name: 'El Salvador', + capital: 'San Salvador', + languages: ['Spanish'], + population: 6520675, + flag: 'https://restcountries.eu/data/slv.svg', + currency: 'United States dollar' + }, + { + name: 'Equatorial Guinea', + capital: 'Malabo', + languages: ['Spanish', 'French'], + population: 1222442, + flag: 'https://restcountries.eu/data/gnq.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Eritrea', + capital: 'Asmara', + languages: ['Tigrinya', 'Arabic', 'English'], + population: 5352000, + flag: 'https://restcountries.eu/data/eri.svg', + currency: 'Eritrean nakfa' + }, + { + name: 'Estonia', + capital: 'Tallinn', + languages: ['Estonian'], + population: 1315944, + flag: 'https://restcountries.eu/data/est.svg', + currency: 'Euro' + }, + { + name: 'Ethiopia', + capital: 'Addis Ababa', + languages: ['Amharic'], + population: 92206005, + flag: 'https://restcountries.eu/data/eth.svg', + currency: 'Ethiopian birr' + }, + { + name: 'Falkland Islands (Malvinas)', + capital: 'Stanley', + languages: ['English'], + population: 2563, + flag: 'https://restcountries.eu/data/flk.svg', + currency: 'Falkland Islands pound' + }, + { + name: 'Faroe Islands', + capital: 'Tórshavn', + languages: ['Faroese'], + population: 49376, + flag: 'https://restcountries.eu/data/fro.svg', + currency: 'Danish krone' + }, + { + name: 'Fiji', + capital: 'Suva', + languages: ['English', 'Fijian', 'Hindi', 'Urdu'], + population: 867000, + flag: 'https://restcountries.eu/data/fji.svg', + currency: 'Fijian dollar' + }, + { + name: 'Finland', + capital: 'Helsinki', + languages: ['Finnish', 'Swedish'], + population: 5491817, + flag: 'https://restcountries.eu/data/fin.svg', + currency: 'Euro' + }, + { + name: 'France', + capital: 'Paris', + languages: ['French'], + population: 66710000, + flag: 'https://restcountries.eu/data/fra.svg', + currency: 'Euro' + }, + { + name: 'French Guiana', + capital: 'Cayenne', + languages: ['French'], + population: 254541, + flag: 'https://restcountries.eu/data/guf.svg', + currency: 'Euro' + }, + { + name: 'French Polynesia', + capital: 'Papeetē', + languages: ['French'], + population: 271800, + flag: 'https://restcountries.eu/data/pyf.svg', + currency: 'CFP franc' + }, + { + name: 'French Southern Territories', + capital: 'Port-aux-Français', + languages: ['French'], + population: 140, + flag: 'https://restcountries.eu/data/atf.svg', + currency: 'Euro' + }, + { + name: 'Gabon', + capital: 'Libreville', + languages: ['French'], + population: 1802278, + flag: 'https://restcountries.eu/data/gab.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Gambia', + capital: 'Banjul', + languages: ['English'], + population: 1882450, + flag: 'https://restcountries.eu/data/gmb.svg', + currency: 'Gambian dalasi' + }, + { + name: 'Georgia', + capital: 'Tbilisi', + languages: ['Georgian'], + population: 3720400, + flag: 'https://restcountries.eu/data/geo.svg', + currency: 'Georgian Lari' + }, + { + name: 'Germany', + capital: 'Berlin', + languages: ['German'], + population: 81770900, + flag: 'https://restcountries.eu/data/deu.svg', + currency: 'Euro' + }, + { + name: 'Ghana', + capital: 'Accra', + languages: ['English'], + population: 27670174, + flag: 'https://restcountries.eu/data/gha.svg', + currency: 'Ghanaian cedi' + }, + { + name: 'Gibraltar', + capital: 'Gibraltar', + languages: ['English'], + population: 33140, + flag: 'https://restcountries.eu/data/gib.svg', + currency: 'Gibraltar pound' + }, + { + name: 'Greece', + capital: 'Athens', + languages: ['Greek (modern)'], + population: 10858018, + flag: 'https://restcountries.eu/data/grc.svg', + currency: 'Euro' + }, + { + name: 'Greenland', + capital: 'Nuuk', + languages: ['Kalaallisut'], + population: 55847, + flag: 'https://restcountries.eu/data/grl.svg', + currency: 'Danish krone' + }, + { + name: 'Grenada', + capital: "St. George's", + languages: ['English'], + population: 103328, + flag: 'https://restcountries.eu/data/grd.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Guadeloupe', + capital: 'Basse-Terre', + languages: ['French'], + population: 400132, + flag: 'https://restcountries.eu/data/glp.svg', + currency: 'Euro' + }, + { + name: 'Guam', + capital: 'Hagåtña', + languages: ['English', 'Chamorro', 'Spanish'], + population: 184200, + flag: 'https://restcountries.eu/data/gum.svg', + currency: 'United States dollar' + }, + { + name: 'Guatemala', + capital: 'Guatemala City', + languages: ['Spanish'], + population: 16176133, + flag: 'https://restcountries.eu/data/gtm.svg', + currency: 'Guatemalan quetzal' + }, + { + name: 'Guernsey', + capital: 'St. Peter Port', + languages: ['English', 'French'], + population: 62999, + flag: 'https://restcountries.eu/data/ggy.svg', + currency: 'British pound' + }, + { + name: 'Guinea', + capital: 'Conakry', + languages: ['French', 'Fula'], + population: 12947000, + flag: 'https://restcountries.eu/data/gin.svg', + currency: 'Guinean franc' + }, + { + name: 'Guinea-Bissau', + capital: 'Bissau', + languages: ['Portuguese'], + population: 1547777, + flag: 'https://restcountries.eu/data/gnb.svg', + currency: 'West African CFA franc' + }, + { + name: 'Guyana', + capital: 'Georgetown', + languages: ['English'], + population: 746900, + flag: 'https://restcountries.eu/data/guy.svg', + currency: 'Guyanese dollar' + }, + { + name: 'Haiti', + capital: 'Port-au-Prince', + languages: ['French', 'Haitian'], + population: 11078033, + flag: 'https://restcountries.eu/data/hti.svg', + currency: 'Haitian gourde' + }, + { + name: 'Heard Island and McDonald Islands', + capital: '', + languages: ['English'], + population: 0, + flag: 'https://restcountries.eu/data/hmd.svg', + currency: 'Australian dollar' + }, + { + name: 'Holy See', + capital: 'Rome', + languages: ['Latin', 'Italian', 'French', 'German'], + population: 451, + flag: 'https://restcountries.eu/data/vat.svg', + currency: 'Euro' + }, + { + name: 'Honduras', + capital: 'Tegucigalpa', + languages: ['Spanish'], + population: 8576532, + flag: 'https://restcountries.eu/data/hnd.svg', + currency: 'Honduran lempira' + }, + { + name: 'Hong Kong', + capital: 'City of Victoria', + languages: ['English', 'Chinese'], + population: 7324300, + flag: 'https://restcountries.eu/data/hkg.svg', + currency: 'Hong Kong dollar' + }, + { + name: 'Hungary', + capital: 'Budapest', + languages: ['Hungarian'], + population: 9823000, + flag: 'https://restcountries.eu/data/hun.svg', + currency: 'Hungarian forint' + }, + { + name: 'Iceland', + capital: 'Reykjavík', + languages: ['Icelandic'], + population: 334300, + flag: 'https://restcountries.eu/data/isl.svg', + currency: 'Icelandic króna' + }, + { + name: 'India', + capital: 'New Delhi', + languages: ['Hindi', 'English'], + population: 1295210000, + flag: 'https://restcountries.eu/data/ind.svg', + currency: 'Indian rupee' + }, + { + name: 'Indonesia', + capital: 'Jakarta', + languages: ['Indonesian'], + population: 258705000, + flag: 'https://restcountries.eu/data/idn.svg', + currency: 'Indonesian rupiah' + }, + { + name: "Côte d'Ivoire", + capital: 'Yamoussoukro', + languages: ['French'], + population: 22671331, + flag: 'https://restcountries.eu/data/civ.svg', + currency: 'West African CFA franc' + }, + { + name: 'Iran (Islamic Republic of)', + capital: 'Tehran', + languages: ['Persian (Farsi)'], + population: 79369900, + flag: 'https://restcountries.eu/data/irn.svg', + currency: 'Iranian rial' + }, + { + name: 'Iraq', + capital: 'Baghdad', + languages: ['Arabic', 'Kurdish'], + population: 37883543, + flag: 'https://restcountries.eu/data/irq.svg', + currency: 'Iraqi dinar' + }, + { + name: 'Ireland', + capital: 'Dublin', + languages: ['Irish', 'English'], + population: 6378000, + flag: 'https://restcountries.eu/data/irl.svg', + currency: 'Euro' + }, + { + name: 'Isle of Man', + capital: 'Douglas', + languages: ['English', 'Manx'], + population: 84497, + flag: 'https://restcountries.eu/data/imn.svg', + currency: 'British pound' + }, + { + name: 'Israel', + capital: 'Jerusalem', + languages: ['Hebrew (modern)', 'Arabic'], + population: 8527400, + flag: 'https://restcountries.eu/data/isr.svg', + currency: 'Israeli new shekel' + }, + { + name: 'Italy', + capital: 'Rome', + languages: ['Italian'], + population: 60665551, + flag: 'https://restcountries.eu/data/ita.svg', + currency: 'Euro' + }, + { + name: 'Jamaica', + capital: 'Kingston', + languages: ['English'], + population: 2723246, + flag: 'https://restcountries.eu/data/jam.svg', + currency: 'Jamaican dollar' + }, + { + name: 'Japan', + capital: 'Tokyo', + languages: ['Japanese'], + population: 126960000, + flag: 'https://restcountries.eu/data/jpn.svg', + currency: 'Japanese yen' + }, + { + name: 'Jersey', + capital: 'Saint Helier', + languages: ['English', 'French'], + population: 100800, + flag: 'https://restcountries.eu/data/jey.svg', + currency: 'British pound' + }, + { + name: 'Jordan', + capital: 'Amman', + languages: ['Arabic'], + population: 9531712, + flag: 'https://restcountries.eu/data/jor.svg', + currency: 'Jordanian dinar' + }, + { + name: 'Kazakhstan', + capital: 'Astana', + languages: ['Kazakh', 'Russian'], + population: 17753200, + flag: 'https://restcountries.eu/data/kaz.svg', + currency: 'Kazakhstani tenge' + }, + { + name: 'Kenya', + capital: 'Nairobi', + languages: ['English', 'Swahili'], + population: 47251000, + flag: 'https://restcountries.eu/data/ken.svg', + currency: 'Kenyan shilling' + }, + { + name: 'Kiribati', + capital: 'South Tarawa', + languages: ['English'], + population: 113400, + flag: 'https://restcountries.eu/data/kir.svg', + currency: 'Australian dollar' + }, + { + name: 'Kuwait', + capital: 'Kuwait City', + languages: ['Arabic'], + population: 4183658, + flag: 'https://restcountries.eu/data/kwt.svg', + currency: 'Kuwaiti dinar' + }, + { + name: 'Kyrgyzstan', + capital: 'Bishkek', + languages: ['Kyrgyz', 'Russian'], + population: 6047800, + flag: 'https://restcountries.eu/data/kgz.svg', + currency: 'Kyrgyzstani som' + }, + { + name: "Lao People's Democratic Republic", + capital: 'Vientiane', + languages: ['Lao'], + population: 6492400, + flag: 'https://restcountries.eu/data/lao.svg', + currency: 'Lao kip' + }, + { + name: 'Latvia', + capital: 'Riga', + languages: ['Latvian'], + population: 1961600, + flag: 'https://restcountries.eu/data/lva.svg', + currency: 'Euro' + }, + { + name: 'Lebanon', + capital: 'Beirut', + languages: ['Arabic', 'French'], + population: 5988000, + flag: 'https://restcountries.eu/data/lbn.svg', + currency: 'Lebanese pound' + }, + { + name: 'Lesotho', + capital: 'Maseru', + languages: ['English', 'Southern Sotho'], + population: 1894194, + flag: 'https://restcountries.eu/data/lso.svg', + currency: 'Lesotho loti' + }, + { + name: 'Liberia', + capital: 'Monrovia', + languages: ['English'], + population: 4615000, + flag: 'https://restcountries.eu/data/lbr.svg', + currency: 'Liberian dollar' + }, + { + name: 'Libya', + capital: 'Tripoli', + languages: ['Arabic'], + population: 6385000, + flag: 'https://restcountries.eu/data/lby.svg', + currency: 'Libyan dinar' + }, + { + name: 'Liechtenstein', + capital: 'Vaduz', + languages: ['German'], + population: 37623, + flag: 'https://restcountries.eu/data/lie.svg', + currency: 'Swiss franc' + }, + { + name: 'Lithuania', + capital: 'Vilnius', + languages: ['Lithuanian'], + population: 2872294, + flag: 'https://restcountries.eu/data/ltu.svg', + currency: 'Euro' + }, + { + name: 'Luxembourg', + capital: 'Luxembourg', + languages: ['French', 'German', 'Luxembourgish'], + population: 576200, + flag: 'https://restcountries.eu/data/lux.svg', + currency: 'Euro' + }, + { + name: 'Macao', + capital: '', + languages: ['Chinese', 'Portuguese'], + population: 649100, + flag: 'https://restcountries.eu/data/mac.svg', + currency: 'Macanese pataca' + }, + { + name: 'Macedonia (the former Yugoslav Republic of)', + capital: 'Skopje', + languages: ['Macedonian'], + population: 2058539, + flag: 'https://restcountries.eu/data/mkd.svg', + currency: 'Macedonian denar' + }, + { + name: 'Madagascar', + capital: 'Antananarivo', + languages: ['French', 'Malagasy'], + population: 22434363, + flag: 'https://restcountries.eu/data/mdg.svg', + currency: 'Malagasy ariary' + }, + { + name: 'Malawi', + capital: 'Lilongwe', + languages: ['English', 'Chichewa'], + population: 16832910, + flag: 'https://restcountries.eu/data/mwi.svg', + currency: 'Malawian kwacha' + }, + { + name: 'Malaysia', + capital: 'Kuala Lumpur', + languages: ['Malaysian'], + population: 31405416, + flag: 'https://restcountries.eu/data/mys.svg', + currency: 'Malaysian ringgit' + }, + { + name: 'Maldives', + capital: 'Malé', + languages: ['Divehi'], + population: 344023, + flag: 'https://restcountries.eu/data/mdv.svg', + currency: 'Maldivian rufiyaa' + }, + { + name: 'Mali', + capital: 'Bamako', + languages: ['French'], + population: 18135000, + flag: 'https://restcountries.eu/data/mli.svg', + currency: 'West African CFA franc' + }, + { + name: 'Malta', + capital: 'Valletta', + languages: ['Maltese', 'English'], + population: 425384, + flag: 'https://restcountries.eu/data/mlt.svg', + currency: 'Euro' + }, + { + name: 'Marshall Islands', + capital: 'Majuro', + languages: ['English', 'Marshallese'], + population: 54880, + flag: 'https://restcountries.eu/data/mhl.svg', + currency: 'United States dollar' + }, + { + name: 'Martinique', + capital: 'Fort-de-France', + languages: ['French'], + population: 378243, + flag: 'https://restcountries.eu/data/mtq.svg', + currency: 'Euro' + }, + { + name: 'Mauritania', + capital: 'Nouakchott', + languages: ['Arabic'], + population: 3718678, + flag: 'https://restcountries.eu/data/mrt.svg', + currency: 'Mauritanian ouguiya' + }, + { + name: 'Mauritius', + capital: 'Port Louis', + languages: ['English'], + population: 1262879, + flag: 'https://restcountries.eu/data/mus.svg', + currency: 'Mauritian rupee' + }, + { + name: 'Mayotte', + capital: 'Mamoudzou', + languages: ['French'], + population: 226915, + flag: 'https://restcountries.eu/data/myt.svg', + currency: 'Euro' + }, + { + name: 'Mexico', + capital: 'Mexico City', + languages: ['Spanish'], + population: 122273473, + flag: 'https://restcountries.eu/data/mex.svg', + currency: 'Mexican peso' + }, + { + name: 'Micronesia (Federated States of)', + capital: 'Palikir', + languages: ['English'], + population: 102800, + flag: 'https://restcountries.eu/data/fsm.svg', + currency: '[D]' + }, + { + name: 'Moldova (Republic of)', + capital: 'Chișinău', + languages: ['Romanian'], + population: 3553100, + flag: 'https://restcountries.eu/data/mda.svg', + currency: 'Moldovan leu' + }, + { + name: 'Monaco', + capital: 'Monaco', + languages: ['French'], + population: 38400, + flag: 'https://restcountries.eu/data/mco.svg', + currency: 'Euro' + }, + { + name: 'Mongolia', + capital: 'Ulan Bator', + languages: ['Mongolian'], + population: 3093100, + flag: 'https://restcountries.eu/data/mng.svg', + currency: 'Mongolian tögrög' + }, + { + name: 'Montenegro', + capital: 'Podgorica', + languages: ['Serbian', 'Bosnian', 'Albanian', 'Croatian'], + population: 621810, + flag: 'https://restcountries.eu/data/mne.svg', + currency: 'Euro' + }, + { + name: 'Montserrat', + capital: 'Plymouth', + languages: ['English'], + population: 4922, + flag: 'https://restcountries.eu/data/msr.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Morocco', + capital: 'Rabat', + languages: ['Arabic'], + population: 33337529, + flag: 'https://restcountries.eu/data/mar.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Mozambique', + capital: 'Maputo', + languages: ['Portuguese'], + population: 26423700, + flag: 'https://restcountries.eu/data/moz.svg', + currency: 'Mozambican metical' + }, + { + name: 'Myanmar', + capital: 'Naypyidaw', + languages: ['Burmese'], + population: 51419420, + flag: 'https://restcountries.eu/data/mmr.svg', + currency: 'Burmese kyat' + }, + { + name: 'Namibia', + capital: 'Windhoek', + languages: ['English', 'Afrikaans'], + population: 2324388, + flag: 'https://restcountries.eu/data/nam.svg', + currency: 'Namibian dollar' + }, + { + name: 'Nauru', + capital: 'Yaren', + languages: ['English', 'Nauruan'], + population: 10084, + flag: 'https://restcountries.eu/data/nru.svg', + currency: 'Australian dollar' + }, + { + name: 'Nepal', + capital: 'Kathmandu', + languages: ['Nepali'], + population: 28431500, + flag: 'https://restcountries.eu/data/npl.svg', + currency: 'Nepalese rupee' + }, + { + name: 'Netherlands', + capital: 'Amsterdam', + languages: ['Dutch'], + population: 17019800, + flag: 'https://restcountries.eu/data/nld.svg', + currency: 'Euro' + }, + { + name: 'New Caledonia', + capital: 'Nouméa', + languages: ['French'], + population: 268767, + flag: 'https://restcountries.eu/data/ncl.svg', + currency: 'CFP franc' + }, + { + name: 'New Zealand', + capital: 'Wellington', + languages: ['English', 'Māori'], + population: 4697854, + flag: 'https://restcountries.eu/data/nzl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Nicaragua', + capital: 'Managua', + languages: ['Spanish'], + population: 6262703, + flag: 'https://restcountries.eu/data/nic.svg', + currency: 'Nicaraguan córdoba' + }, + { + name: 'Niger', + capital: 'Niamey', + languages: ['French'], + population: 20715000, + flag: 'https://restcountries.eu/data/ner.svg', + currency: 'West African CFA franc' + }, + { + name: 'Nigeria', + capital: 'Abuja', + languages: ['English'], + population: 186988000, + flag: 'https://restcountries.eu/data/nga.svg', + currency: 'Nigerian naira' + }, + { + name: 'Niue', + capital: 'Alofi', + languages: ['English'], + population: 1470, + flag: 'https://restcountries.eu/data/niu.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Norfolk Island', + capital: 'Kingston', + languages: ['English'], + population: 2302, + flag: 'https://restcountries.eu/data/nfk.svg', + currency: 'Australian dollar' + }, + { + name: "Korea (Democratic People's Republic of)", + capital: 'Pyongyang', + languages: ['Korean'], + population: 25281000, + flag: 'https://restcountries.eu/data/prk.svg', + currency: 'North Korean won' + }, + { + name: 'Northern Mariana Islands', + capital: 'Saipan', + languages: ['English', 'Chamorro'], + population: 56940, + flag: 'https://restcountries.eu/data/mnp.svg', + currency: 'United States dollar' + }, + { + name: 'Norway', + capital: 'Oslo', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 5223256, + flag: 'https://restcountries.eu/data/nor.svg', + currency: 'Norwegian krone' + }, + { + name: 'Oman', + capital: 'Muscat', + languages: ['Arabic'], + population: 4420133, + flag: 'https://restcountries.eu/data/omn.svg', + currency: 'Omani rial' + }, + { + name: 'Pakistan', + capital: 'Islamabad', + languages: ['English', 'Urdu'], + population: 194125062, + flag: 'https://restcountries.eu/data/pak.svg', + currency: 'Pakistani rupee' + }, + { + name: 'Palau', + capital: 'Ngerulmud', + languages: ['English'], + population: 17950, + flag: 'https://restcountries.eu/data/plw.svg', + currency: '[E]' + }, + { + name: 'Palestine, State of', + capital: 'Ramallah', + languages: ['Arabic'], + population: 4682467, + flag: 'https://restcountries.eu/data/pse.svg', + currency: 'Israeli new sheqel' + }, + { + name: 'Panama', + capital: 'Panama City', + languages: ['Spanish'], + population: 3814672, + flag: 'https://restcountries.eu/data/pan.svg', + currency: 'Panamanian balboa' + }, + { + name: 'Papua New Guinea', + capital: 'Port Moresby', + languages: ['English'], + population: 8083700, + flag: 'https://restcountries.eu/data/png.svg', + currency: 'Papua New Guinean kina' + }, + { + name: 'Paraguay', + capital: 'Asunción', + languages: ['Spanish', 'Guaraní'], + population: 6854536, + flag: 'https://restcountries.eu/data/pry.svg', + currency: 'Paraguayan guaraní' + }, + { + name: 'Peru', + capital: 'Lima', + languages: ['Spanish'], + population: 31488700, + flag: 'https://restcountries.eu/data/per.svg', + currency: 'Peruvian sol' + }, + { + name: 'Philippines', + capital: 'Manila', + languages: ['English'], + population: 103279800, + flag: 'https://restcountries.eu/data/phl.svg', + currency: 'Philippine peso' + }, + { + name: 'Pitcairn', + capital: 'Adamstown', + languages: ['English'], + population: 56, + flag: 'https://restcountries.eu/data/pcn.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Poland', + capital: 'Warsaw', + languages: ['Polish'], + population: 38437239, + flag: 'https://restcountries.eu/data/pol.svg', + currency: 'Polish złoty' + }, + { + name: 'Portugal', + capital: 'Lisbon', + languages: ['Portuguese'], + population: 10374822, + flag: 'https://restcountries.eu/data/prt.svg', + currency: 'Euro' + }, + { + name: 'Puerto Rico', + capital: 'San Juan', + languages: ['Spanish', 'English'], + population: 3474182, + flag: 'https://restcountries.eu/data/pri.svg', + currency: 'United States dollar' + }, + { + name: 'Qatar', + capital: 'Doha', + languages: ['Arabic'], + population: 2587564, + flag: 'https://restcountries.eu/data/qat.svg', + currency: 'Qatari riyal' + }, + { + name: 'Republic of Kosovo', + capital: 'Pristina', + languages: ['Albanian', 'Serbian'], + population: 1733842, + flag: 'https://restcountries.eu/data/kos.svg', + currency: 'Euro' + }, + { + name: 'Réunion', + capital: 'Saint-Denis', + languages: ['French'], + population: 840974, + flag: 'https://restcountries.eu/data/reu.svg', + currency: 'Euro' + }, + { + name: 'Romania', + capital: 'Bucharest', + languages: ['Romanian'], + population: 19861408, + flag: 'https://restcountries.eu/data/rou.svg', + currency: 'Romanian leu' + }, + { + name: 'Russian Federation', + capital: 'Moscow', + languages: ['Russian'], + population: 146599183, + flag: 'https://restcountries.eu/data/rus.svg', + currency: 'Russian ruble' + }, + { + name: 'Rwanda', + capital: 'Kigali', + languages: ['Kinyarwanda', 'English', 'French'], + population: 11553188, + flag: 'https://restcountries.eu/data/rwa.svg', + currency: 'Rwandan franc' + }, + { + name: 'Saint Barthélemy', + capital: 'Gustavia', + languages: ['French'], + population: 9417, + flag: 'https://restcountries.eu/data/blm.svg', + currency: 'Euro' + }, + { + name: 'Saint Helena, Ascension and Tristan da Cunha', + capital: 'Jamestown', + languages: ['English'], + population: 4255, + flag: 'https://restcountries.eu/data/shn.svg', + currency: 'Saint Helena pound' + }, + { + name: 'Saint Kitts and Nevis', + capital: 'Basseterre', + languages: ['English'], + population: 46204, + flag: 'https://restcountries.eu/data/kna.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Lucia', + capital: 'Castries', + languages: ['English'], + population: 186000, + flag: 'https://restcountries.eu/data/lca.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Martin (French part)', + capital: 'Marigot', + languages: ['English', 'French', 'Dutch'], + population: 36979, + flag: 'https://restcountries.eu/data/maf.svg', + currency: 'Euro' + }, + { + name: 'Saint Pierre and Miquelon', + capital: 'Saint-Pierre', + languages: ['French'], + population: 6069, + flag: 'https://restcountries.eu/data/spm.svg', + currency: 'Euro' + }, + { + name: 'Saint Vincent and the Grenadines', + capital: 'Kingstown', + languages: ['English'], + population: 109991, + flag: 'https://restcountries.eu/data/vct.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Samoa', + capital: 'Apia', + languages: ['Samoan', 'English'], + population: 194899, + flag: 'https://restcountries.eu/data/wsm.svg', + currency: 'Samoan tālā' + }, + { + name: 'San Marino', + capital: 'City of San Marino', + languages: ['Italian'], + population: 33005, + flag: 'https://restcountries.eu/data/smr.svg', + currency: 'Euro' + }, + { + name: 'Sao Tome and Principe', + capital: 'São Tomé', + languages: ['Portuguese'], + population: 187356, + flag: 'https://restcountries.eu/data/stp.svg', + currency: 'São Tomé and Príncipe dobra' + }, + { + name: 'Saudi Arabia', + capital: 'Riyadh', + languages: ['Arabic'], + population: 32248200, + flag: 'https://restcountries.eu/data/sau.svg', + currency: 'Saudi riyal' + }, + { + name: 'Senegal', + capital: 'Dakar', + languages: ['French'], + population: 14799859, + flag: 'https://restcountries.eu/data/sen.svg', + currency: 'West African CFA franc' + }, + { + name: 'Serbia', + capital: 'Belgrade', + languages: ['Serbian'], + population: 7076372, + flag: 'https://restcountries.eu/data/srb.svg', + currency: 'Serbian dinar' + }, + { + name: 'Seychelles', + capital: 'Victoria', + languages: ['French', 'English'], + population: 91400, + flag: 'https://restcountries.eu/data/syc.svg', + currency: 'Seychellois rupee' + }, + { + name: 'Sierra Leone', + capital: 'Freetown', + languages: ['English'], + population: 7075641, + flag: 'https://restcountries.eu/data/sle.svg', + currency: 'Sierra Leonean leone' + }, + { + name: 'Singapore', + capital: 'Singapore', + languages: ['English', 'Malay', 'Tamil', 'Chinese'], + population: 5535000, + flag: 'https://restcountries.eu/data/sgp.svg', + currency: 'Brunei dollar' + }, + { + name: 'Sint Maarten (Dutch part)', + capital: 'Philipsburg', + languages: ['Dutch', 'English'], + population: 38247, + flag: 'https://restcountries.eu/data/sxm.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Slovakia', + capital: 'Bratislava', + languages: ['Slovak'], + population: 5426252, + flag: 'https://restcountries.eu/data/svk.svg', + currency: 'Euro' + }, + { + name: 'Slovenia', + capital: 'Ljubljana', + languages: ['Slovene'], + population: 2064188, + flag: 'https://restcountries.eu/data/svn.svg', + currency: 'Euro' + }, + { + name: 'Solomon Islands', + capital: 'Honiara', + languages: ['English'], + population: 642000, + flag: 'https://restcountries.eu/data/slb.svg', + currency: 'Solomon Islands dollar' + }, + { + name: 'Somalia', + capital: 'Mogadishu', + languages: ['Somali', 'Arabic'], + population: 11079000, + flag: 'https://restcountries.eu/data/som.svg', + currency: 'Somali shilling' + }, + { + name: 'South Africa', + capital: 'Pretoria', + languages: [ + 'Afrikaans', + 'English', + 'Southern Ndebele', + 'Southern Sotho', + 'Swati', + 'Tswana', + 'Tsonga', + 'Venda', + 'Xhosa', + 'Zulu' + ], + population: 55653654, + flag: 'https://restcountries.eu/data/zaf.svg', + currency: 'South African rand' + }, + { + name: 'South Georgia and the South Sandwich Islands', + capital: 'King Edward Point', + languages: ['English'], + population: 30, + flag: 'https://restcountries.eu/data/sgs.svg', + currency: 'British pound' + }, + { + name: 'Korea (Republic of)', + capital: 'Seoul', + languages: ['Korean'], + population: 50801405, + flag: 'https://restcountries.eu/data/kor.svg', + currency: 'South Korean won' + }, + { + name: 'South Sudan', + capital: 'Juba', + languages: ['English'], + population: 12131000, + flag: 'https://restcountries.eu/data/ssd.svg', + currency: 'South Sudanese pound' + }, + { + name: 'Spain', + capital: 'Madrid', + languages: ['Spanish'], + population: 46438422, + flag: 'https://restcountries.eu/data/esp.svg', + currency: 'Euro' + }, + { + name: 'Sri Lanka', + capital: 'Colombo', + languages: ['Sinhalese', 'Tamil'], + population: 20966000, + flag: 'https://restcountries.eu/data/lka.svg', + currency: 'Sri Lankan rupee' + }, + { + name: 'Sudan', + capital: 'Khartoum', + languages: ['Arabic', 'English'], + population: 39598700, + flag: 'https://restcountries.eu/data/sdn.svg', + currency: 'Sudanese pound' + }, + { + name: 'Suriname', + capital: 'Paramaribo', + languages: ['Dutch'], + population: 541638, + flag: 'https://restcountries.eu/data/sur.svg', + currency: 'Surinamese dollar' + }, + { + name: 'Svalbard and Jan Mayen', + capital: 'Longyearbyen', + languages: ['Norwegian'], + population: 2562, + flag: 'https://restcountries.eu/data/sjm.svg', + currency: 'Norwegian krone' + }, + { + name: 'Swaziland', + capital: 'Lobamba', + languages: ['English', 'Swati'], + population: 1132657, + flag: 'https://restcountries.eu/data/swz.svg', + currency: 'Swazi lilangeni' + }, + { + name: 'Sweden', + capital: 'Stockholm', + languages: ['Swedish'], + population: 9894888, + flag: 'https://restcountries.eu/data/swe.svg', + currency: 'Swedish krona' + }, + { + name: 'Switzerland', + capital: 'Bern', + languages: ['German', 'French', 'Italian'], + population: 8341600, + flag: 'https://restcountries.eu/data/che.svg', + currency: 'Swiss franc' + }, + { + name: 'Syrian Arab Republic', + capital: 'Damascus', + languages: ['Arabic'], + population: 18564000, + flag: 'https://restcountries.eu/data/syr.svg', + currency: 'Syrian pound' + }, + { + name: 'Taiwan', + capital: 'Taipei', + languages: ['Chinese'], + population: 23503349, + flag: 'https://restcountries.eu/data/twn.svg', + currency: 'New Taiwan dollar' + }, + { + name: 'Tajikistan', + capital: 'Dushanbe', + languages: ['Tajik', 'Russian'], + population: 8593600, + flag: 'https://restcountries.eu/data/tjk.svg', + currency: 'Tajikistani somoni' + }, + { + name: 'Tanzania, United Republic of', + capital: 'Dodoma', + languages: ['Swahili', 'English'], + population: 55155000, + flag: 'https://restcountries.eu/data/tza.svg', + currency: 'Tanzanian shilling' + }, + { + name: 'Thailand', + capital: 'Bangkok', + languages: ['Thai'], + population: 65327652, + flag: 'https://restcountries.eu/data/tha.svg', + currency: 'Thai baht' + }, + { + name: 'Timor-Leste', + capital: 'Dili', + languages: ['Portuguese'], + population: 1167242, + flag: 'https://restcountries.eu/data/tls.svg', + currency: 'United States dollar' + }, + { + name: 'Togo', + capital: 'Lomé', + languages: ['French'], + population: 7143000, + flag: 'https://restcountries.eu/data/tgo.svg', + currency: 'West African CFA franc' + }, + { + name: 'Tokelau', + capital: 'Fakaofo', + languages: ['English'], + population: 1411, + flag: 'https://restcountries.eu/data/tkl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Tonga', + capital: "Nuku'alofa", + languages: ['English', 'Tonga (Tonga Islands)'], + population: 103252, + flag: 'https://restcountries.eu/data/ton.svg', + currency: 'Tongan paʻanga' + }, + { + name: 'Trinidad and Tobago', + capital: 'Port of Spain', + languages: ['English'], + population: 1349667, + flag: 'https://restcountries.eu/data/tto.svg', + currency: 'Trinidad and Tobago dollar' + }, + { + name: 'Tunisia', + capital: 'Tunis', + languages: ['Arabic'], + population: 11154400, + flag: 'https://restcountries.eu/data/tun.svg', + currency: 'Tunisian dinar' + }, + { + name: 'Turkey', + capital: 'Ankara', + languages: ['Turkish'], + population: 78741053, + flag: 'https://restcountries.eu/data/tur.svg', + currency: 'Turkish lira' + }, + { + name: 'Turkmenistan', + capital: 'Ashgabat', + languages: ['Turkmen', 'Russian'], + population: 4751120, + flag: 'https://restcountries.eu/data/tkm.svg', + currency: 'Turkmenistan manat' + }, + { + name: 'Turks and Caicos Islands', + capital: 'Cockburn Town', + languages: ['English'], + population: 31458, + flag: 'https://restcountries.eu/data/tca.svg', + currency: 'United States dollar' + }, + { + name: 'Tuvalu', + capital: 'Funafuti', + languages: ['English'], + population: 10640, + flag: 'https://restcountries.eu/data/tuv.svg', + currency: 'Australian dollar' + }, + { + name: 'Uganda', + capital: 'Kampala', + languages: ['English', 'Swahili'], + population: 33860700, + flag: 'https://restcountries.eu/data/uga.svg', + currency: 'Ugandan shilling' + }, + { + name: 'Ukraine', + capital: 'Kiev', + languages: ['Ukrainian'], + population: 42692393, + flag: 'https://restcountries.eu/data/ukr.svg', + currency: 'Ukrainian hryvnia' + }, + { + name: 'United Arab Emirates', + capital: 'Abu Dhabi', + languages: ['Arabic'], + population: 9856000, + flag: 'https://restcountries.eu/data/are.svg', + currency: 'United Arab Emirates dirham' + }, + { + name: 'United Kingdom of Great Britain and Northern Ireland', + capital: 'London', + languages: ['English'], + population: 65110000, + flag: 'https://restcountries.eu/data/gbr.svg', + currency: 'British pound' + }, + { + name: 'United States of America', + capital: 'Washington, D.C.', + languages: ['English'], + population: 323947000, + flag: 'https://restcountries.eu/data/usa.svg', + currency: 'United States dollar' + }, + { + name: 'Uruguay', + capital: 'Montevideo', + languages: ['Spanish'], + population: 3480222, + flag: 'https://restcountries.eu/data/ury.svg', + currency: 'Uruguayan peso' + }, + { + name: 'Uzbekistan', + capital: 'Tashkent', + languages: ['Uzbek', 'Russian'], + population: 31576400, + flag: 'https://restcountries.eu/data/uzb.svg', + currency: "Uzbekistani so'm" + }, + { + name: 'Vanuatu', + capital: 'Port Vila', + languages: ['Bislama', 'English', 'French'], + population: 277500, + flag: 'https://restcountries.eu/data/vut.svg', + currency: 'Vanuatu vatu' + }, + { + name: 'Venezuela (Bolivarian Republic of)', + capital: 'Caracas', + languages: ['Spanish'], + population: 31028700, + flag: 'https://restcountries.eu/data/ven.svg', + currency: 'Venezuelan bolívar' + }, + { + name: 'Viet Nam', + capital: 'Hanoi', + languages: ['Vietnamese'], + population: 92700000, + flag: 'https://restcountries.eu/data/vnm.svg', + currency: 'Vietnamese đồng' + }, + { + name: 'Wallis and Futuna', + capital: 'Mata-Utu', + languages: ['French'], + population: 11750, + flag: 'https://restcountries.eu/data/wlf.svg', + currency: 'CFP franc' + }, + { + name: 'Western Sahara', + capital: 'El Aaiún', + languages: ['Spanish'], + population: 510713, + flag: 'https://restcountries.eu/data/esh.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Yemen', + capital: "Sana'a", + languages: ['Arabic'], + population: 27478000, + flag: 'https://restcountries.eu/data/yem.svg', + currency: 'Yemeni rial' + }, + { + name: 'Zambia', + capital: 'Lusaka', + languages: ['English'], + population: 15933883, + flag: 'https://restcountries.eu/data/zmb.svg', + currency: 'Zambian kwacha' + }, + { + name: 'Zimbabwe', + capital: 'Harare', + languages: ['English', 'Shona', 'Northern Ndebele'], + population: 14240168, + flag: 'https://restcountries.eu/data/zwe.svg', + currency: 'Botswana pula' + } +] diff --git a/10_Day/10_day_starter/index.html b/10_Day/10_day_starter/index.html new file mode 100644 index 0000000..38b79a2 --- /dev/null +++ b/10_Day/10_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:10 Day + + + +

30DaysOfJavaScript:10 Day

+

Set and Map

+ + + + + + + \ No newline at end of file diff --git a/10_Day/10_day_starter/scripts/main.js b/10_Day/10_day_starter/scripts/main.js new file mode 100644 index 0000000..c6045c8 --- /dev/null +++ b/10_Day/10_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file diff --git a/11_Day/11_day_starter/data/countries_data.js b/11_Day/11_day_starter/data/countries_data.js new file mode 100644 index 0000000..92acddd --- /dev/null +++ b/11_Day/11_day_starter/data/countries_data.js @@ -0,0 +1,2013 @@ +const countries = [ + { + name: 'Afghanistan', + capital: 'Kabul', + languages: ['Pashto', 'Uzbek', 'Turkmen'], + population: 27657145, + flag: 'https://restcountries.eu/data/afg.svg', + currency: 'Afghan afghani' + }, + { + name: 'Åland Islands', + capital: 'Mariehamn', + languages: ['Swedish'], + population: 28875, + flag: 'https://restcountries.eu/data/ala.svg', + currency: 'Euro' + }, + { + name: 'Albania', + capital: 'Tirana', + languages: ['Albanian'], + population: 2886026, + flag: 'https://restcountries.eu/data/alb.svg', + currency: 'Albanian lek' + }, + { + name: 'Algeria', + capital: 'Algiers', + languages: ['Arabic'], + population: 40400000, + flag: 'https://restcountries.eu/data/dza.svg', + currency: 'Algerian dinar' + }, + { + name: 'American Samoa', + capital: 'Pago Pago', + languages: ['English', 'Samoan'], + population: 57100, + flag: 'https://restcountries.eu/data/asm.svg', + currency: 'United State Dollar' + }, + { + name: 'Andorra', + capital: 'Andorra la Vella', + languages: ['Catalan'], + population: 78014, + flag: 'https://restcountries.eu/data/and.svg', + currency: 'Euro' + }, + { + name: 'Angola', + capital: 'Luanda', + languages: ['Portuguese'], + population: 25868000, + flag: 'https://restcountries.eu/data/ago.svg', + currency: 'Angolan kwanza' + }, + { + name: 'Anguilla', + capital: 'The Valley', + languages: ['English'], + population: 13452, + flag: 'https://restcountries.eu/data/aia.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Antarctica', + capital: '', + languages: ['English', 'Russian'], + population: 1000, + flag: 'https://restcountries.eu/data/ata.svg', + currency: 'Australian dollar' + }, + { + name: 'Antigua and Barbuda', + capital: "Saint John's", + languages: ['English'], + population: 86295, + flag: 'https://restcountries.eu/data/atg.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Argentina', + capital: 'Buenos Aires', + languages: ['Spanish', 'Guaraní'], + population: 43590400, + flag: 'https://restcountries.eu/data/arg.svg', + currency: 'Argentine peso' + }, + { + name: 'Armenia', + capital: 'Yerevan', + languages: ['Armenian', 'Russian'], + population: 2994400, + flag: 'https://restcountries.eu/data/arm.svg', + currency: 'Armenian dram' + }, + { + name: 'Aruba', + capital: 'Oranjestad', + languages: ['Dutch', '(Eastern) Punjabi'], + population: 107394, + flag: 'https://restcountries.eu/data/abw.svg', + currency: 'Aruban florin' + }, + { + name: 'Australia', + capital: 'Canberra', + languages: ['English'], + population: 24117360, + flag: 'https://restcountries.eu/data/aus.svg', + currency: 'Australian dollar' + }, + { + name: 'Austria', + capital: 'Vienna', + languages: ['German'], + population: 8725931, + flag: 'https://restcountries.eu/data/aut.svg', + currency: 'Euro' + }, + { + name: 'Azerbaijan', + capital: 'Baku', + languages: ['Azerbaijani'], + population: 9730500, + flag: 'https://restcountries.eu/data/aze.svg', + currency: 'Azerbaijani manat' + }, + { + name: 'Bahamas', + capital: 'Nassau', + languages: ['English'], + population: 378040, + flag: 'https://restcountries.eu/data/bhs.svg', + currency: 'Bahamian dollar' + }, + { + name: 'Bahrain', + capital: 'Manama', + languages: ['Arabic'], + population: 1404900, + flag: 'https://restcountries.eu/data/bhr.svg', + currency: 'Bahraini dinar' + }, + { + name: 'Bangladesh', + capital: 'Dhaka', + languages: ['Bengali'], + population: 161006790, + flag: 'https://restcountries.eu/data/bgd.svg', + currency: 'Bangladeshi taka' + }, + { + name: 'Barbados', + capital: 'Bridgetown', + languages: ['English'], + population: 285000, + flag: 'https://restcountries.eu/data/brb.svg', + currency: 'Barbadian dollar' + }, + { + name: 'Belarus', + capital: 'Minsk', + languages: ['Belarusian', 'Russian'], + population: 9498700, + flag: 'https://restcountries.eu/data/blr.svg', + currency: 'New Belarusian ruble' + }, + { + name: 'Belgium', + capital: 'Brussels', + languages: ['Dutch', 'French', 'German'], + population: 11319511, + flag: 'https://restcountries.eu/data/bel.svg', + currency: 'Euro' + }, + { + name: 'Belize', + capital: 'Belmopan', + languages: ['English', 'Spanish'], + population: 370300, + flag: 'https://restcountries.eu/data/blz.svg', + currency: 'Belize dollar' + }, + { + name: 'Benin', + capital: 'Porto-Novo', + languages: ['French'], + population: 10653654, + flag: 'https://restcountries.eu/data/ben.svg', + currency: 'West African CFA franc' + }, + { + name: 'Bermuda', + capital: 'Hamilton', + languages: ['English'], + population: 61954, + flag: 'https://restcountries.eu/data/bmu.svg', + currency: 'Bermudian dollar' + }, + { + name: 'Bhutan', + capital: 'Thimphu', + languages: ['Dzongkha'], + population: 775620, + flag: 'https://restcountries.eu/data/btn.svg', + currency: 'Bhutanese ngultrum' + }, + { + name: 'Bolivia (Plurinational State of)', + capital: 'Sucre', + languages: ['Spanish', 'Aymara', 'Quechua'], + population: 10985059, + flag: 'https://restcountries.eu/data/bol.svg', + currency: 'Bolivian boliviano' + }, + { + name: 'Bonaire, Sint Eustatius and Saba', + capital: 'Kralendijk', + languages: ['Dutch'], + population: 17408, + flag: 'https://restcountries.eu/data/bes.svg', + currency: 'United States dollar' + }, + { + name: 'Bosnia and Herzegovina', + capital: 'Sarajevo', + languages: ['Bosnian', 'Croatian', 'Serbian'], + population: 3531159, + flag: 'https://restcountries.eu/data/bih.svg', + currency: 'Bosnia and Herzegovina convertible mark' + }, + { + name: 'Botswana', + capital: 'Gaborone', + languages: ['English', 'Tswana'], + population: 2141206, + flag: 'https://restcountries.eu/data/bwa.svg', + currency: 'Botswana pula' + }, + { + name: 'Bouvet Island', + capital: '', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 0, + flag: 'https://restcountries.eu/data/bvt.svg', + currency: 'Norwegian krone' + }, + { + name: 'Brazil', + capital: 'Brasília', + languages: ['Portuguese'], + population: 206135893, + flag: 'https://restcountries.eu/data/bra.svg', + currency: 'Brazilian real' + }, + { + name: 'British Indian Ocean Territory', + capital: 'Diego Garcia', + languages: ['English'], + population: 3000, + flag: 'https://restcountries.eu/data/iot.svg', + currency: 'United States dollar' + }, + { + name: 'United States Minor Outlying Islands', + capital: '', + languages: ['English'], + population: 300, + flag: 'https://restcountries.eu/data/umi.svg', + currency: 'United States Dollar' + }, + { + name: 'Virgin Islands (British)', + capital: 'Road Town', + languages: ['English'], + population: 28514, + flag: 'https://restcountries.eu/data/vgb.svg', + currency: '[D]' + }, + { + name: 'Virgin Islands (U.S.)', + capital: 'Charlotte Amalie', + languages: ['English'], + population: 114743, + flag: 'https://restcountries.eu/data/vir.svg', + currency: 'United States dollar' + }, + { + name: 'Brunei Darussalam', + capital: 'Bandar Seri Begawan', + languages: ['Malay'], + population: 411900, + flag: 'https://restcountries.eu/data/brn.svg', + currency: 'Brunei dollar' + }, + { + name: 'Bulgaria', + capital: 'Sofia', + languages: ['Bulgarian'], + population: 7153784, + flag: 'https://restcountries.eu/data/bgr.svg', + currency: 'Bulgarian lev' + }, + { + name: 'Burkina Faso', + capital: 'Ouagadougou', + languages: ['French', 'Fula'], + population: 19034397, + flag: 'https://restcountries.eu/data/bfa.svg', + currency: 'West African CFA franc' + }, + { + name: 'Burundi', + capital: 'Bujumbura', + languages: ['French', 'Kirundi'], + population: 10114505, + flag: 'https://restcountries.eu/data/bdi.svg', + currency: 'Burundian franc' + }, + { + name: 'Cambodia', + capital: 'Phnom Penh', + languages: ['Khmer'], + population: 15626444, + flag: 'https://restcountries.eu/data/khm.svg', + currency: 'Cambodian riel' + }, + { + name: 'Cameroon', + capital: 'Yaoundé', + languages: ['English', 'French'], + population: 22709892, + flag: 'https://restcountries.eu/data/cmr.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Canada', + capital: 'Ottawa', + languages: ['English', 'French'], + population: 36155487, + flag: 'https://restcountries.eu/data/can.svg', + currency: 'Canadian dollar' + }, + { + name: 'Cabo Verde', + capital: 'Praia', + languages: ['Portuguese'], + population: 531239, + flag: 'https://restcountries.eu/data/cpv.svg', + currency: 'Cape Verdean escudo' + }, + { + name: 'Cayman Islands', + capital: 'George Town', + languages: ['English'], + population: 58238, + flag: 'https://restcountries.eu/data/cym.svg', + currency: 'Cayman Islands dollar' + }, + { + name: 'Central African Republic', + capital: 'Bangui', + languages: ['French', 'Sango'], + population: 4998000, + flag: 'https://restcountries.eu/data/caf.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chad', + capital: "N'Djamena", + languages: ['French', 'Arabic'], + population: 14497000, + flag: 'https://restcountries.eu/data/tcd.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chile', + capital: 'Santiago', + languages: ['Spanish'], + population: 18191900, + flag: 'https://restcountries.eu/data/chl.svg', + currency: 'Chilean peso' + }, + { + name: 'China', + capital: 'Beijing', + languages: ['Chinese'], + population: 1377422166, + flag: 'https://restcountries.eu/data/chn.svg', + currency: 'Chinese yuan' + }, + { + name: 'Christmas Island', + capital: 'Flying Fish Cove', + languages: ['English'], + population: 2072, + flag: 'https://restcountries.eu/data/cxr.svg', + currency: 'Australian dollar' + }, + { + name: 'Cocos (Keeling) Islands', + capital: 'West Island', + languages: ['English'], + population: 550, + flag: 'https://restcountries.eu/data/cck.svg', + currency: 'Australian dollar' + }, + { + name: 'Colombia', + capital: 'Bogotá', + languages: ['Spanish'], + population: 48759958, + flag: 'https://restcountries.eu/data/col.svg', + currency: 'Colombian peso' + }, + { + name: 'Comoros', + capital: 'Moroni', + languages: ['Arabic', 'French'], + population: 806153, + flag: 'https://restcountries.eu/data/com.svg', + currency: 'Comorian franc' + }, + { + name: 'Congo', + capital: 'Brazzaville', + languages: ['French', 'Lingala'], + population: 4741000, + flag: 'https://restcountries.eu/data/cog.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Congo (Democratic Republic of the)', + capital: 'Kinshasa', + languages: ['French', 'Lingala', 'Kongo', 'Swahili', 'Luba-Katanga'], + population: 85026000, + flag: 'https://restcountries.eu/data/cod.svg', + currency: 'Congolese franc' + }, + { + name: 'Cook Islands', + capital: 'Avarua', + languages: ['English'], + population: 18100, + flag: 'https://restcountries.eu/data/cok.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Costa Rica', + capital: 'San José', + languages: ['Spanish'], + population: 4890379, + flag: 'https://restcountries.eu/data/cri.svg', + currency: 'Costa Rican colón' + }, + { + name: 'Croatia', + capital: 'Zagreb', + languages: ['Croatian'], + population: 4190669, + flag: 'https://restcountries.eu/data/hrv.svg', + currency: 'Croatian kuna' + }, + { + name: 'Cuba', + capital: 'Havana', + languages: ['Spanish'], + population: 11239004, + flag: 'https://restcountries.eu/data/cub.svg', + currency: 'Cuban convertible peso' + }, + { + name: 'Curaçao', + capital: 'Willemstad', + languages: ['Dutch', '(Eastern) Punjabi', 'English'], + population: 154843, + flag: 'https://restcountries.eu/data/cuw.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Cyprus', + capital: 'Nicosia', + languages: ['Greek (modern)', 'Turkish', 'Armenian'], + population: 847000, + flag: 'https://restcountries.eu/data/cyp.svg', + currency: 'Euro' + }, + { + name: 'Czech Republic', + capital: 'Prague', + languages: ['Czech', 'Slovak'], + population: 10558524, + flag: 'https://restcountries.eu/data/cze.svg', + currency: 'Czech koruna' + }, + { + name: 'Denmark', + capital: 'Copenhagen', + languages: ['Danish'], + population: 5717014, + flag: 'https://restcountries.eu/data/dnk.svg', + currency: 'Danish krone' + }, + { + name: 'Djibouti', + capital: 'Djibouti', + languages: ['French', 'Arabic'], + population: 900000, + flag: 'https://restcountries.eu/data/dji.svg', + currency: 'Djiboutian franc' + }, + { + name: 'Dominica', + capital: 'Roseau', + languages: ['English'], + population: 71293, + flag: 'https://restcountries.eu/data/dma.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Dominican Republic', + capital: 'Santo Domingo', + languages: ['Spanish'], + population: 10075045, + flag: 'https://restcountries.eu/data/dom.svg', + currency: 'Dominican peso' + }, + { + name: 'Ecuador', + capital: 'Quito', + languages: ['Spanish'], + population: 16545799, + flag: 'https://restcountries.eu/data/ecu.svg', + currency: 'United States dollar' + }, + { + name: 'Egypt', + capital: 'Cairo', + languages: ['Arabic'], + population: 91290000, + flag: 'https://restcountries.eu/data/egy.svg', + currency: 'Egyptian pound' + }, + { + name: 'El Salvador', + capital: 'San Salvador', + languages: ['Spanish'], + population: 6520675, + flag: 'https://restcountries.eu/data/slv.svg', + currency: 'United States dollar' + }, + { + name: 'Equatorial Guinea', + capital: 'Malabo', + languages: ['Spanish', 'French'], + population: 1222442, + flag: 'https://restcountries.eu/data/gnq.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Eritrea', + capital: 'Asmara', + languages: ['Tigrinya', 'Arabic', 'English'], + population: 5352000, + flag: 'https://restcountries.eu/data/eri.svg', + currency: 'Eritrean nakfa' + }, + { + name: 'Estonia', + capital: 'Tallinn', + languages: ['Estonian'], + population: 1315944, + flag: 'https://restcountries.eu/data/est.svg', + currency: 'Euro' + }, + { + name: 'Ethiopia', + capital: 'Addis Ababa', + languages: ['Amharic'], + population: 92206005, + flag: 'https://restcountries.eu/data/eth.svg', + currency: 'Ethiopian birr' + }, + { + name: 'Falkland Islands (Malvinas)', + capital: 'Stanley', + languages: ['English'], + population: 2563, + flag: 'https://restcountries.eu/data/flk.svg', + currency: 'Falkland Islands pound' + }, + { + name: 'Faroe Islands', + capital: 'Tórshavn', + languages: ['Faroese'], + population: 49376, + flag: 'https://restcountries.eu/data/fro.svg', + currency: 'Danish krone' + }, + { + name: 'Fiji', + capital: 'Suva', + languages: ['English', 'Fijian', 'Hindi', 'Urdu'], + population: 867000, + flag: 'https://restcountries.eu/data/fji.svg', + currency: 'Fijian dollar' + }, + { + name: 'Finland', + capital: 'Helsinki', + languages: ['Finnish', 'Swedish'], + population: 5491817, + flag: 'https://restcountries.eu/data/fin.svg', + currency: 'Euro' + }, + { + name: 'France', + capital: 'Paris', + languages: ['French'], + population: 66710000, + flag: 'https://restcountries.eu/data/fra.svg', + currency: 'Euro' + }, + { + name: 'French Guiana', + capital: 'Cayenne', + languages: ['French'], + population: 254541, + flag: 'https://restcountries.eu/data/guf.svg', + currency: 'Euro' + }, + { + name: 'French Polynesia', + capital: 'Papeetē', + languages: ['French'], + population: 271800, + flag: 'https://restcountries.eu/data/pyf.svg', + currency: 'CFP franc' + }, + { + name: 'French Southern Territories', + capital: 'Port-aux-Français', + languages: ['French'], + population: 140, + flag: 'https://restcountries.eu/data/atf.svg', + currency: 'Euro' + }, + { + name: 'Gabon', + capital: 'Libreville', + languages: ['French'], + population: 1802278, + flag: 'https://restcountries.eu/data/gab.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Gambia', + capital: 'Banjul', + languages: ['English'], + population: 1882450, + flag: 'https://restcountries.eu/data/gmb.svg', + currency: 'Gambian dalasi' + }, + { + name: 'Georgia', + capital: 'Tbilisi', + languages: ['Georgian'], + population: 3720400, + flag: 'https://restcountries.eu/data/geo.svg', + currency: 'Georgian Lari' + }, + { + name: 'Germany', + capital: 'Berlin', + languages: ['German'], + population: 81770900, + flag: 'https://restcountries.eu/data/deu.svg', + currency: 'Euro' + }, + { + name: 'Ghana', + capital: 'Accra', + languages: ['English'], + population: 27670174, + flag: 'https://restcountries.eu/data/gha.svg', + currency: 'Ghanaian cedi' + }, + { + name: 'Gibraltar', + capital: 'Gibraltar', + languages: ['English'], + population: 33140, + flag: 'https://restcountries.eu/data/gib.svg', + currency: 'Gibraltar pound' + }, + { + name: 'Greece', + capital: 'Athens', + languages: ['Greek (modern)'], + population: 10858018, + flag: 'https://restcountries.eu/data/grc.svg', + currency: 'Euro' + }, + { + name: 'Greenland', + capital: 'Nuuk', + languages: ['Kalaallisut'], + population: 55847, + flag: 'https://restcountries.eu/data/grl.svg', + currency: 'Danish krone' + }, + { + name: 'Grenada', + capital: "St. George's", + languages: ['English'], + population: 103328, + flag: 'https://restcountries.eu/data/grd.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Guadeloupe', + capital: 'Basse-Terre', + languages: ['French'], + population: 400132, + flag: 'https://restcountries.eu/data/glp.svg', + currency: 'Euro' + }, + { + name: 'Guam', + capital: 'Hagåtña', + languages: ['English', 'Chamorro', 'Spanish'], + population: 184200, + flag: 'https://restcountries.eu/data/gum.svg', + currency: 'United States dollar' + }, + { + name: 'Guatemala', + capital: 'Guatemala City', + languages: ['Spanish'], + population: 16176133, + flag: 'https://restcountries.eu/data/gtm.svg', + currency: 'Guatemalan quetzal' + }, + { + name: 'Guernsey', + capital: 'St. Peter Port', + languages: ['English', 'French'], + population: 62999, + flag: 'https://restcountries.eu/data/ggy.svg', + currency: 'British pound' + }, + { + name: 'Guinea', + capital: 'Conakry', + languages: ['French', 'Fula'], + population: 12947000, + flag: 'https://restcountries.eu/data/gin.svg', + currency: 'Guinean franc' + }, + { + name: 'Guinea-Bissau', + capital: 'Bissau', + languages: ['Portuguese'], + population: 1547777, + flag: 'https://restcountries.eu/data/gnb.svg', + currency: 'West African CFA franc' + }, + { + name: 'Guyana', + capital: 'Georgetown', + languages: ['English'], + population: 746900, + flag: 'https://restcountries.eu/data/guy.svg', + currency: 'Guyanese dollar' + }, + { + name: 'Haiti', + capital: 'Port-au-Prince', + languages: ['French', 'Haitian'], + population: 11078033, + flag: 'https://restcountries.eu/data/hti.svg', + currency: 'Haitian gourde' + }, + { + name: 'Heard Island and McDonald Islands', + capital: '', + languages: ['English'], + population: 0, + flag: 'https://restcountries.eu/data/hmd.svg', + currency: 'Australian dollar' + }, + { + name: 'Holy See', + capital: 'Rome', + languages: ['Latin', 'Italian', 'French', 'German'], + population: 451, + flag: 'https://restcountries.eu/data/vat.svg', + currency: 'Euro' + }, + { + name: 'Honduras', + capital: 'Tegucigalpa', + languages: ['Spanish'], + population: 8576532, + flag: 'https://restcountries.eu/data/hnd.svg', + currency: 'Honduran lempira' + }, + { + name: 'Hong Kong', + capital: 'City of Victoria', + languages: ['English', 'Chinese'], + population: 7324300, + flag: 'https://restcountries.eu/data/hkg.svg', + currency: 'Hong Kong dollar' + }, + { + name: 'Hungary', + capital: 'Budapest', + languages: ['Hungarian'], + population: 9823000, + flag: 'https://restcountries.eu/data/hun.svg', + currency: 'Hungarian forint' + }, + { + name: 'Iceland', + capital: 'Reykjavík', + languages: ['Icelandic'], + population: 334300, + flag: 'https://restcountries.eu/data/isl.svg', + currency: 'Icelandic króna' + }, + { + name: 'India', + capital: 'New Delhi', + languages: ['Hindi', 'English'], + population: 1295210000, + flag: 'https://restcountries.eu/data/ind.svg', + currency: 'Indian rupee' + }, + { + name: 'Indonesia', + capital: 'Jakarta', + languages: ['Indonesian'], + population: 258705000, + flag: 'https://restcountries.eu/data/idn.svg', + currency: 'Indonesian rupiah' + }, + { + name: "Côte d'Ivoire", + capital: 'Yamoussoukro', + languages: ['French'], + population: 22671331, + flag: 'https://restcountries.eu/data/civ.svg', + currency: 'West African CFA franc' + }, + { + name: 'Iran (Islamic Republic of)', + capital: 'Tehran', + languages: ['Persian (Farsi)'], + population: 79369900, + flag: 'https://restcountries.eu/data/irn.svg', + currency: 'Iranian rial' + }, + { + name: 'Iraq', + capital: 'Baghdad', + languages: ['Arabic', 'Kurdish'], + population: 37883543, + flag: 'https://restcountries.eu/data/irq.svg', + currency: 'Iraqi dinar' + }, + { + name: 'Ireland', + capital: 'Dublin', + languages: ['Irish', 'English'], + population: 6378000, + flag: 'https://restcountries.eu/data/irl.svg', + currency: 'Euro' + }, + { + name: 'Isle of Man', + capital: 'Douglas', + languages: ['English', 'Manx'], + population: 84497, + flag: 'https://restcountries.eu/data/imn.svg', + currency: 'British pound' + }, + { + name: 'Israel', + capital: 'Jerusalem', + languages: ['Hebrew (modern)', 'Arabic'], + population: 8527400, + flag: 'https://restcountries.eu/data/isr.svg', + currency: 'Israeli new shekel' + }, + { + name: 'Italy', + capital: 'Rome', + languages: ['Italian'], + population: 60665551, + flag: 'https://restcountries.eu/data/ita.svg', + currency: 'Euro' + }, + { + name: 'Jamaica', + capital: 'Kingston', + languages: ['English'], + population: 2723246, + flag: 'https://restcountries.eu/data/jam.svg', + currency: 'Jamaican dollar' + }, + { + name: 'Japan', + capital: 'Tokyo', + languages: ['Japanese'], + population: 126960000, + flag: 'https://restcountries.eu/data/jpn.svg', + currency: 'Japanese yen' + }, + { + name: 'Jersey', + capital: 'Saint Helier', + languages: ['English', 'French'], + population: 100800, + flag: 'https://restcountries.eu/data/jey.svg', + currency: 'British pound' + }, + { + name: 'Jordan', + capital: 'Amman', + languages: ['Arabic'], + population: 9531712, + flag: 'https://restcountries.eu/data/jor.svg', + currency: 'Jordanian dinar' + }, + { + name: 'Kazakhstan', + capital: 'Astana', + languages: ['Kazakh', 'Russian'], + population: 17753200, + flag: 'https://restcountries.eu/data/kaz.svg', + currency: 'Kazakhstani tenge' + }, + { + name: 'Kenya', + capital: 'Nairobi', + languages: ['English', 'Swahili'], + population: 47251000, + flag: 'https://restcountries.eu/data/ken.svg', + currency: 'Kenyan shilling' + }, + { + name: 'Kiribati', + capital: 'South Tarawa', + languages: ['English'], + population: 113400, + flag: 'https://restcountries.eu/data/kir.svg', + currency: 'Australian dollar' + }, + { + name: 'Kuwait', + capital: 'Kuwait City', + languages: ['Arabic'], + population: 4183658, + flag: 'https://restcountries.eu/data/kwt.svg', + currency: 'Kuwaiti dinar' + }, + { + name: 'Kyrgyzstan', + capital: 'Bishkek', + languages: ['Kyrgyz', 'Russian'], + population: 6047800, + flag: 'https://restcountries.eu/data/kgz.svg', + currency: 'Kyrgyzstani som' + }, + { + name: "Lao People's Democratic Republic", + capital: 'Vientiane', + languages: ['Lao'], + population: 6492400, + flag: 'https://restcountries.eu/data/lao.svg', + currency: 'Lao kip' + }, + { + name: 'Latvia', + capital: 'Riga', + languages: ['Latvian'], + population: 1961600, + flag: 'https://restcountries.eu/data/lva.svg', + currency: 'Euro' + }, + { + name: 'Lebanon', + capital: 'Beirut', + languages: ['Arabic', 'French'], + population: 5988000, + flag: 'https://restcountries.eu/data/lbn.svg', + currency: 'Lebanese pound' + }, + { + name: 'Lesotho', + capital: 'Maseru', + languages: ['English', 'Southern Sotho'], + population: 1894194, + flag: 'https://restcountries.eu/data/lso.svg', + currency: 'Lesotho loti' + }, + { + name: 'Liberia', + capital: 'Monrovia', + languages: ['English'], + population: 4615000, + flag: 'https://restcountries.eu/data/lbr.svg', + currency: 'Liberian dollar' + }, + { + name: 'Libya', + capital: 'Tripoli', + languages: ['Arabic'], + population: 6385000, + flag: 'https://restcountries.eu/data/lby.svg', + currency: 'Libyan dinar' + }, + { + name: 'Liechtenstein', + capital: 'Vaduz', + languages: ['German'], + population: 37623, + flag: 'https://restcountries.eu/data/lie.svg', + currency: 'Swiss franc' + }, + { + name: 'Lithuania', + capital: 'Vilnius', + languages: ['Lithuanian'], + population: 2872294, + flag: 'https://restcountries.eu/data/ltu.svg', + currency: 'Euro' + }, + { + name: 'Luxembourg', + capital: 'Luxembourg', + languages: ['French', 'German', 'Luxembourgish'], + population: 576200, + flag: 'https://restcountries.eu/data/lux.svg', + currency: 'Euro' + }, + { + name: 'Macao', + capital: '', + languages: ['Chinese', 'Portuguese'], + population: 649100, + flag: 'https://restcountries.eu/data/mac.svg', + currency: 'Macanese pataca' + }, + { + name: 'Macedonia (the former Yugoslav Republic of)', + capital: 'Skopje', + languages: ['Macedonian'], + population: 2058539, + flag: 'https://restcountries.eu/data/mkd.svg', + currency: 'Macedonian denar' + }, + { + name: 'Madagascar', + capital: 'Antananarivo', + languages: ['French', 'Malagasy'], + population: 22434363, + flag: 'https://restcountries.eu/data/mdg.svg', + currency: 'Malagasy ariary' + }, + { + name: 'Malawi', + capital: 'Lilongwe', + languages: ['English', 'Chichewa'], + population: 16832910, + flag: 'https://restcountries.eu/data/mwi.svg', + currency: 'Malawian kwacha' + }, + { + name: 'Malaysia', + capital: 'Kuala Lumpur', + languages: ['Malaysian'], + population: 31405416, + flag: 'https://restcountries.eu/data/mys.svg', + currency: 'Malaysian ringgit' + }, + { + name: 'Maldives', + capital: 'Malé', + languages: ['Divehi'], + population: 344023, + flag: 'https://restcountries.eu/data/mdv.svg', + currency: 'Maldivian rufiyaa' + }, + { + name: 'Mali', + capital: 'Bamako', + languages: ['French'], + population: 18135000, + flag: 'https://restcountries.eu/data/mli.svg', + currency: 'West African CFA franc' + }, + { + name: 'Malta', + capital: 'Valletta', + languages: ['Maltese', 'English'], + population: 425384, + flag: 'https://restcountries.eu/data/mlt.svg', + currency: 'Euro' + }, + { + name: 'Marshall Islands', + capital: 'Majuro', + languages: ['English', 'Marshallese'], + population: 54880, + flag: 'https://restcountries.eu/data/mhl.svg', + currency: 'United States dollar' + }, + { + name: 'Martinique', + capital: 'Fort-de-France', + languages: ['French'], + population: 378243, + flag: 'https://restcountries.eu/data/mtq.svg', + currency: 'Euro' + }, + { + name: 'Mauritania', + capital: 'Nouakchott', + languages: ['Arabic'], + population: 3718678, + flag: 'https://restcountries.eu/data/mrt.svg', + currency: 'Mauritanian ouguiya' + }, + { + name: 'Mauritius', + capital: 'Port Louis', + languages: ['English'], + population: 1262879, + flag: 'https://restcountries.eu/data/mus.svg', + currency: 'Mauritian rupee' + }, + { + name: 'Mayotte', + capital: 'Mamoudzou', + languages: ['French'], + population: 226915, + flag: 'https://restcountries.eu/data/myt.svg', + currency: 'Euro' + }, + { + name: 'Mexico', + capital: 'Mexico City', + languages: ['Spanish'], + population: 122273473, + flag: 'https://restcountries.eu/data/mex.svg', + currency: 'Mexican peso' + }, + { + name: 'Micronesia (Federated States of)', + capital: 'Palikir', + languages: ['English'], + population: 102800, + flag: 'https://restcountries.eu/data/fsm.svg', + currency: '[D]' + }, + { + name: 'Moldova (Republic of)', + capital: 'Chișinău', + languages: ['Romanian'], + population: 3553100, + flag: 'https://restcountries.eu/data/mda.svg', + currency: 'Moldovan leu' + }, + { + name: 'Monaco', + capital: 'Monaco', + languages: ['French'], + population: 38400, + flag: 'https://restcountries.eu/data/mco.svg', + currency: 'Euro' + }, + { + name: 'Mongolia', + capital: 'Ulan Bator', + languages: ['Mongolian'], + population: 3093100, + flag: 'https://restcountries.eu/data/mng.svg', + currency: 'Mongolian tögrög' + }, + { + name: 'Montenegro', + capital: 'Podgorica', + languages: ['Serbian', 'Bosnian', 'Albanian', 'Croatian'], + population: 621810, + flag: 'https://restcountries.eu/data/mne.svg', + currency: 'Euro' + }, + { + name: 'Montserrat', + capital: 'Plymouth', + languages: ['English'], + population: 4922, + flag: 'https://restcountries.eu/data/msr.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Morocco', + capital: 'Rabat', + languages: ['Arabic'], + population: 33337529, + flag: 'https://restcountries.eu/data/mar.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Mozambique', + capital: 'Maputo', + languages: ['Portuguese'], + population: 26423700, + flag: 'https://restcountries.eu/data/moz.svg', + currency: 'Mozambican metical' + }, + { + name: 'Myanmar', + capital: 'Naypyidaw', + languages: ['Burmese'], + population: 51419420, + flag: 'https://restcountries.eu/data/mmr.svg', + currency: 'Burmese kyat' + }, + { + name: 'Namibia', + capital: 'Windhoek', + languages: ['English', 'Afrikaans'], + population: 2324388, + flag: 'https://restcountries.eu/data/nam.svg', + currency: 'Namibian dollar' + }, + { + name: 'Nauru', + capital: 'Yaren', + languages: ['English', 'Nauruan'], + population: 10084, + flag: 'https://restcountries.eu/data/nru.svg', + currency: 'Australian dollar' + }, + { + name: 'Nepal', + capital: 'Kathmandu', + languages: ['Nepali'], + population: 28431500, + flag: 'https://restcountries.eu/data/npl.svg', + currency: 'Nepalese rupee' + }, + { + name: 'Netherlands', + capital: 'Amsterdam', + languages: ['Dutch'], + population: 17019800, + flag: 'https://restcountries.eu/data/nld.svg', + currency: 'Euro' + }, + { + name: 'New Caledonia', + capital: 'Nouméa', + languages: ['French'], + population: 268767, + flag: 'https://restcountries.eu/data/ncl.svg', + currency: 'CFP franc' + }, + { + name: 'New Zealand', + capital: 'Wellington', + languages: ['English', 'Māori'], + population: 4697854, + flag: 'https://restcountries.eu/data/nzl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Nicaragua', + capital: 'Managua', + languages: ['Spanish'], + population: 6262703, + flag: 'https://restcountries.eu/data/nic.svg', + currency: 'Nicaraguan córdoba' + }, + { + name: 'Niger', + capital: 'Niamey', + languages: ['French'], + population: 20715000, + flag: 'https://restcountries.eu/data/ner.svg', + currency: 'West African CFA franc' + }, + { + name: 'Nigeria', + capital: 'Abuja', + languages: ['English'], + population: 186988000, + flag: 'https://restcountries.eu/data/nga.svg', + currency: 'Nigerian naira' + }, + { + name: 'Niue', + capital: 'Alofi', + languages: ['English'], + population: 1470, + flag: 'https://restcountries.eu/data/niu.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Norfolk Island', + capital: 'Kingston', + languages: ['English'], + population: 2302, + flag: 'https://restcountries.eu/data/nfk.svg', + currency: 'Australian dollar' + }, + { + name: "Korea (Democratic People's Republic of)", + capital: 'Pyongyang', + languages: ['Korean'], + population: 25281000, + flag: 'https://restcountries.eu/data/prk.svg', + currency: 'North Korean won' + }, + { + name: 'Northern Mariana Islands', + capital: 'Saipan', + languages: ['English', 'Chamorro'], + population: 56940, + flag: 'https://restcountries.eu/data/mnp.svg', + currency: 'United States dollar' + }, + { + name: 'Norway', + capital: 'Oslo', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 5223256, + flag: 'https://restcountries.eu/data/nor.svg', + currency: 'Norwegian krone' + }, + { + name: 'Oman', + capital: 'Muscat', + languages: ['Arabic'], + population: 4420133, + flag: 'https://restcountries.eu/data/omn.svg', + currency: 'Omani rial' + }, + { + name: 'Pakistan', + capital: 'Islamabad', + languages: ['English', 'Urdu'], + population: 194125062, + flag: 'https://restcountries.eu/data/pak.svg', + currency: 'Pakistani rupee' + }, + { + name: 'Palau', + capital: 'Ngerulmud', + languages: ['English'], + population: 17950, + flag: 'https://restcountries.eu/data/plw.svg', + currency: '[E]' + }, + { + name: 'Palestine, State of', + capital: 'Ramallah', + languages: ['Arabic'], + population: 4682467, + flag: 'https://restcountries.eu/data/pse.svg', + currency: 'Israeli new sheqel' + }, + { + name: 'Panama', + capital: 'Panama City', + languages: ['Spanish'], + population: 3814672, + flag: 'https://restcountries.eu/data/pan.svg', + currency: 'Panamanian balboa' + }, + { + name: 'Papua New Guinea', + capital: 'Port Moresby', + languages: ['English'], + population: 8083700, + flag: 'https://restcountries.eu/data/png.svg', + currency: 'Papua New Guinean kina' + }, + { + name: 'Paraguay', + capital: 'Asunción', + languages: ['Spanish', 'Guaraní'], + population: 6854536, + flag: 'https://restcountries.eu/data/pry.svg', + currency: 'Paraguayan guaraní' + }, + { + name: 'Peru', + capital: 'Lima', + languages: ['Spanish'], + population: 31488700, + flag: 'https://restcountries.eu/data/per.svg', + currency: 'Peruvian sol' + }, + { + name: 'Philippines', + capital: 'Manila', + languages: ['English'], + population: 103279800, + flag: 'https://restcountries.eu/data/phl.svg', + currency: 'Philippine peso' + }, + { + name: 'Pitcairn', + capital: 'Adamstown', + languages: ['English'], + population: 56, + flag: 'https://restcountries.eu/data/pcn.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Poland', + capital: 'Warsaw', + languages: ['Polish'], + population: 38437239, + flag: 'https://restcountries.eu/data/pol.svg', + currency: 'Polish złoty' + }, + { + name: 'Portugal', + capital: 'Lisbon', + languages: ['Portuguese'], + population: 10374822, + flag: 'https://restcountries.eu/data/prt.svg', + currency: 'Euro' + }, + { + name: 'Puerto Rico', + capital: 'San Juan', + languages: ['Spanish', 'English'], + population: 3474182, + flag: 'https://restcountries.eu/data/pri.svg', + currency: 'United States dollar' + }, + { + name: 'Qatar', + capital: 'Doha', + languages: ['Arabic'], + population: 2587564, + flag: 'https://restcountries.eu/data/qat.svg', + currency: 'Qatari riyal' + }, + { + name: 'Republic of Kosovo', + capital: 'Pristina', + languages: ['Albanian', 'Serbian'], + population: 1733842, + flag: 'https://restcountries.eu/data/kos.svg', + currency: 'Euro' + }, + { + name: 'Réunion', + capital: 'Saint-Denis', + languages: ['French'], + population: 840974, + flag: 'https://restcountries.eu/data/reu.svg', + currency: 'Euro' + }, + { + name: 'Romania', + capital: 'Bucharest', + languages: ['Romanian'], + population: 19861408, + flag: 'https://restcountries.eu/data/rou.svg', + currency: 'Romanian leu' + }, + { + name: 'Russian Federation', + capital: 'Moscow', + languages: ['Russian'], + population: 146599183, + flag: 'https://restcountries.eu/data/rus.svg', + currency: 'Russian ruble' + }, + { + name: 'Rwanda', + capital: 'Kigali', + languages: ['Kinyarwanda', 'English', 'French'], + population: 11553188, + flag: 'https://restcountries.eu/data/rwa.svg', + currency: 'Rwandan franc' + }, + { + name: 'Saint Barthélemy', + capital: 'Gustavia', + languages: ['French'], + population: 9417, + flag: 'https://restcountries.eu/data/blm.svg', + currency: 'Euro' + }, + { + name: 'Saint Helena, Ascension and Tristan da Cunha', + capital: 'Jamestown', + languages: ['English'], + population: 4255, + flag: 'https://restcountries.eu/data/shn.svg', + currency: 'Saint Helena pound' + }, + { + name: 'Saint Kitts and Nevis', + capital: 'Basseterre', + languages: ['English'], + population: 46204, + flag: 'https://restcountries.eu/data/kna.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Lucia', + capital: 'Castries', + languages: ['English'], + population: 186000, + flag: 'https://restcountries.eu/data/lca.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Martin (French part)', + capital: 'Marigot', + languages: ['English', 'French', 'Dutch'], + population: 36979, + flag: 'https://restcountries.eu/data/maf.svg', + currency: 'Euro' + }, + { + name: 'Saint Pierre and Miquelon', + capital: 'Saint-Pierre', + languages: ['French'], + population: 6069, + flag: 'https://restcountries.eu/data/spm.svg', + currency: 'Euro' + }, + { + name: 'Saint Vincent and the Grenadines', + capital: 'Kingstown', + languages: ['English'], + population: 109991, + flag: 'https://restcountries.eu/data/vct.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Samoa', + capital: 'Apia', + languages: ['Samoan', 'English'], + population: 194899, + flag: 'https://restcountries.eu/data/wsm.svg', + currency: 'Samoan tālā' + }, + { + name: 'San Marino', + capital: 'City of San Marino', + languages: ['Italian'], + population: 33005, + flag: 'https://restcountries.eu/data/smr.svg', + currency: 'Euro' + }, + { + name: 'Sao Tome and Principe', + capital: 'São Tomé', + languages: ['Portuguese'], + population: 187356, + flag: 'https://restcountries.eu/data/stp.svg', + currency: 'São Tomé and Príncipe dobra' + }, + { + name: 'Saudi Arabia', + capital: 'Riyadh', + languages: ['Arabic'], + population: 32248200, + flag: 'https://restcountries.eu/data/sau.svg', + currency: 'Saudi riyal' + }, + { + name: 'Senegal', + capital: 'Dakar', + languages: ['French'], + population: 14799859, + flag: 'https://restcountries.eu/data/sen.svg', + currency: 'West African CFA franc' + }, + { + name: 'Serbia', + capital: 'Belgrade', + languages: ['Serbian'], + population: 7076372, + flag: 'https://restcountries.eu/data/srb.svg', + currency: 'Serbian dinar' + }, + { + name: 'Seychelles', + capital: 'Victoria', + languages: ['French', 'English'], + population: 91400, + flag: 'https://restcountries.eu/data/syc.svg', + currency: 'Seychellois rupee' + }, + { + name: 'Sierra Leone', + capital: 'Freetown', + languages: ['English'], + population: 7075641, + flag: 'https://restcountries.eu/data/sle.svg', + currency: 'Sierra Leonean leone' + }, + { + name: 'Singapore', + capital: 'Singapore', + languages: ['English', 'Malay', 'Tamil', 'Chinese'], + population: 5535000, + flag: 'https://restcountries.eu/data/sgp.svg', + currency: 'Brunei dollar' + }, + { + name: 'Sint Maarten (Dutch part)', + capital: 'Philipsburg', + languages: ['Dutch', 'English'], + population: 38247, + flag: 'https://restcountries.eu/data/sxm.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Slovakia', + capital: 'Bratislava', + languages: ['Slovak'], + population: 5426252, + flag: 'https://restcountries.eu/data/svk.svg', + currency: 'Euro' + }, + { + name: 'Slovenia', + capital: 'Ljubljana', + languages: ['Slovene'], + population: 2064188, + flag: 'https://restcountries.eu/data/svn.svg', + currency: 'Euro' + }, + { + name: 'Solomon Islands', + capital: 'Honiara', + languages: ['English'], + population: 642000, + flag: 'https://restcountries.eu/data/slb.svg', + currency: 'Solomon Islands dollar' + }, + { + name: 'Somalia', + capital: 'Mogadishu', + languages: ['Somali', 'Arabic'], + population: 11079000, + flag: 'https://restcountries.eu/data/som.svg', + currency: 'Somali shilling' + }, + { + name: 'South Africa', + capital: 'Pretoria', + languages: [ + 'Afrikaans', + 'English', + 'Southern Ndebele', + 'Southern Sotho', + 'Swati', + 'Tswana', + 'Tsonga', + 'Venda', + 'Xhosa', + 'Zulu' + ], + population: 55653654, + flag: 'https://restcountries.eu/data/zaf.svg', + currency: 'South African rand' + }, + { + name: 'South Georgia and the South Sandwich Islands', + capital: 'King Edward Point', + languages: ['English'], + population: 30, + flag: 'https://restcountries.eu/data/sgs.svg', + currency: 'British pound' + }, + { + name: 'Korea (Republic of)', + capital: 'Seoul', + languages: ['Korean'], + population: 50801405, + flag: 'https://restcountries.eu/data/kor.svg', + currency: 'South Korean won' + }, + { + name: 'South Sudan', + capital: 'Juba', + languages: ['English'], + population: 12131000, + flag: 'https://restcountries.eu/data/ssd.svg', + currency: 'South Sudanese pound' + }, + { + name: 'Spain', + capital: 'Madrid', + languages: ['Spanish'], + population: 46438422, + flag: 'https://restcountries.eu/data/esp.svg', + currency: 'Euro' + }, + { + name: 'Sri Lanka', + capital: 'Colombo', + languages: ['Sinhalese', 'Tamil'], + population: 20966000, + flag: 'https://restcountries.eu/data/lka.svg', + currency: 'Sri Lankan rupee' + }, + { + name: 'Sudan', + capital: 'Khartoum', + languages: ['Arabic', 'English'], + population: 39598700, + flag: 'https://restcountries.eu/data/sdn.svg', + currency: 'Sudanese pound' + }, + { + name: 'Suriname', + capital: 'Paramaribo', + languages: ['Dutch'], + population: 541638, + flag: 'https://restcountries.eu/data/sur.svg', + currency: 'Surinamese dollar' + }, + { + name: 'Svalbard and Jan Mayen', + capital: 'Longyearbyen', + languages: ['Norwegian'], + population: 2562, + flag: 'https://restcountries.eu/data/sjm.svg', + currency: 'Norwegian krone' + }, + { + name: 'Swaziland', + capital: 'Lobamba', + languages: ['English', 'Swati'], + population: 1132657, + flag: 'https://restcountries.eu/data/swz.svg', + currency: 'Swazi lilangeni' + }, + { + name: 'Sweden', + capital: 'Stockholm', + languages: ['Swedish'], + population: 9894888, + flag: 'https://restcountries.eu/data/swe.svg', + currency: 'Swedish krona' + }, + { + name: 'Switzerland', + capital: 'Bern', + languages: ['German', 'French', 'Italian'], + population: 8341600, + flag: 'https://restcountries.eu/data/che.svg', + currency: 'Swiss franc' + }, + { + name: 'Syrian Arab Republic', + capital: 'Damascus', + languages: ['Arabic'], + population: 18564000, + flag: 'https://restcountries.eu/data/syr.svg', + currency: 'Syrian pound' + }, + { + name: 'Taiwan', + capital: 'Taipei', + languages: ['Chinese'], + population: 23503349, + flag: 'https://restcountries.eu/data/twn.svg', + currency: 'New Taiwan dollar' + }, + { + name: 'Tajikistan', + capital: 'Dushanbe', + languages: ['Tajik', 'Russian'], + population: 8593600, + flag: 'https://restcountries.eu/data/tjk.svg', + currency: 'Tajikistani somoni' + }, + { + name: 'Tanzania, United Republic of', + capital: 'Dodoma', + languages: ['Swahili', 'English'], + population: 55155000, + flag: 'https://restcountries.eu/data/tza.svg', + currency: 'Tanzanian shilling' + }, + { + name: 'Thailand', + capital: 'Bangkok', + languages: ['Thai'], + population: 65327652, + flag: 'https://restcountries.eu/data/tha.svg', + currency: 'Thai baht' + }, + { + name: 'Timor-Leste', + capital: 'Dili', + languages: ['Portuguese'], + population: 1167242, + flag: 'https://restcountries.eu/data/tls.svg', + currency: 'United States dollar' + }, + { + name: 'Togo', + capital: 'Lomé', + languages: ['French'], + population: 7143000, + flag: 'https://restcountries.eu/data/tgo.svg', + currency: 'West African CFA franc' + }, + { + name: 'Tokelau', + capital: 'Fakaofo', + languages: ['English'], + population: 1411, + flag: 'https://restcountries.eu/data/tkl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Tonga', + capital: "Nuku'alofa", + languages: ['English', 'Tonga (Tonga Islands)'], + population: 103252, + flag: 'https://restcountries.eu/data/ton.svg', + currency: 'Tongan paʻanga' + }, + { + name: 'Trinidad and Tobago', + capital: 'Port of Spain', + languages: ['English'], + population: 1349667, + flag: 'https://restcountries.eu/data/tto.svg', + currency: 'Trinidad and Tobago dollar' + }, + { + name: 'Tunisia', + capital: 'Tunis', + languages: ['Arabic'], + population: 11154400, + flag: 'https://restcountries.eu/data/tun.svg', + currency: 'Tunisian dinar' + }, + { + name: 'Turkey', + capital: 'Ankara', + languages: ['Turkish'], + population: 78741053, + flag: 'https://restcountries.eu/data/tur.svg', + currency: 'Turkish lira' + }, + { + name: 'Turkmenistan', + capital: 'Ashgabat', + languages: ['Turkmen', 'Russian'], + population: 4751120, + flag: 'https://restcountries.eu/data/tkm.svg', + currency: 'Turkmenistan manat' + }, + { + name: 'Turks and Caicos Islands', + capital: 'Cockburn Town', + languages: ['English'], + population: 31458, + flag: 'https://restcountries.eu/data/tca.svg', + currency: 'United States dollar' + }, + { + name: 'Tuvalu', + capital: 'Funafuti', + languages: ['English'], + population: 10640, + flag: 'https://restcountries.eu/data/tuv.svg', + currency: 'Australian dollar' + }, + { + name: 'Uganda', + capital: 'Kampala', + languages: ['English', 'Swahili'], + population: 33860700, + flag: 'https://restcountries.eu/data/uga.svg', + currency: 'Ugandan shilling' + }, + { + name: 'Ukraine', + capital: 'Kiev', + languages: ['Ukrainian'], + population: 42692393, + flag: 'https://restcountries.eu/data/ukr.svg', + currency: 'Ukrainian hryvnia' + }, + { + name: 'United Arab Emirates', + capital: 'Abu Dhabi', + languages: ['Arabic'], + population: 9856000, + flag: 'https://restcountries.eu/data/are.svg', + currency: 'United Arab Emirates dirham' + }, + { + name: 'United Kingdom of Great Britain and Northern Ireland', + capital: 'London', + languages: ['English'], + population: 65110000, + flag: 'https://restcountries.eu/data/gbr.svg', + currency: 'British pound' + }, + { + name: 'United States of America', + capital: 'Washington, D.C.', + languages: ['English'], + population: 323947000, + flag: 'https://restcountries.eu/data/usa.svg', + currency: 'United States dollar' + }, + { + name: 'Uruguay', + capital: 'Montevideo', + languages: ['Spanish'], + population: 3480222, + flag: 'https://restcountries.eu/data/ury.svg', + currency: 'Uruguayan peso' + }, + { + name: 'Uzbekistan', + capital: 'Tashkent', + languages: ['Uzbek', 'Russian'], + population: 31576400, + flag: 'https://restcountries.eu/data/uzb.svg', + currency: "Uzbekistani so'm" + }, + { + name: 'Vanuatu', + capital: 'Port Vila', + languages: ['Bislama', 'English', 'French'], + population: 277500, + flag: 'https://restcountries.eu/data/vut.svg', + currency: 'Vanuatu vatu' + }, + { + name: 'Venezuela (Bolivarian Republic of)', + capital: 'Caracas', + languages: ['Spanish'], + population: 31028700, + flag: 'https://restcountries.eu/data/ven.svg', + currency: 'Venezuelan bolívar' + }, + { + name: 'Viet Nam', + capital: 'Hanoi', + languages: ['Vietnamese'], + population: 92700000, + flag: 'https://restcountries.eu/data/vnm.svg', + currency: 'Vietnamese đồng' + }, + { + name: 'Wallis and Futuna', + capital: 'Mata-Utu', + languages: ['French'], + population: 11750, + flag: 'https://restcountries.eu/data/wlf.svg', + currency: 'CFP franc' + }, + { + name: 'Western Sahara', + capital: 'El Aaiún', + languages: ['Spanish'], + population: 510713, + flag: 'https://restcountries.eu/data/esh.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Yemen', + capital: "Sana'a", + languages: ['Arabic'], + population: 27478000, + flag: 'https://restcountries.eu/data/yem.svg', + currency: 'Yemeni rial' + }, + { + name: 'Zambia', + capital: 'Lusaka', + languages: ['English'], + population: 15933883, + flag: 'https://restcountries.eu/data/zmb.svg', + currency: 'Zambian kwacha' + }, + { + name: 'Zimbabwe', + capital: 'Harare', + languages: ['English', 'Shona', 'Northern Ndebele'], + population: 14240168, + flag: 'https://restcountries.eu/data/zwe.svg', + currency: 'Botswana pula' + } +] diff --git a/11_Day/11_day_starter/index.html b/11_Day/11_day_starter/index.html new file mode 100644 index 0000000..6efcab4 --- /dev/null +++ b/11_Day/11_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:11 Day + + + +

30DaysOfJavaScript:11 Day

+

Destructuring and Spread

+ + + + + + + \ No newline at end of file diff --git a/11_Day/11_day_starter/scripts/main.js b/11_Day/11_day_starter/scripts/main.js new file mode 100644 index 0000000..c6045c8 --- /dev/null +++ b/11_Day/11_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file diff --git a/11_Day/11_destructuring_and_spread.md b/11_Day/11_destructuring_and_spread.md index 124302a..44bf4ff 100644 --- a/11_Day/11_destructuring_and_spread.md +++ b/11_Day/11_destructuring_and_spread.md @@ -13,7 +13,7 @@ -[<< Day 10](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_Set_and_Map.md) | [Day 12>>](#) +[<< Day 10](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_Set_and_Map.md) | [Day 12>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) ![Day 11](../images/banners/day_1_11.png) @@ -688,6 +688,7 @@ const users = [ } } +``` 🎉 CONGRATULATIONS ! 🎉 -[<< Day 10](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_Set_and_Map.md) | [Day 12>>](#) \ No newline at end of file +[<< Day 10](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_Set_and_Map.md) | [Day 12>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) \ No newline at end of file diff --git a/12_Day/12_day_regular_expressions.md b/12_Day/12_day_regular_expressions.md new file mode 100644 index 0000000..ed644bb --- /dev/null +++ b/12_Day/12_day_regular_expressions.md @@ -0,0 +1,500 @@ +
+

30 Days Of JavaScript

+ + + + + Twitter Follow + + Author: + Asabeneh Yetayeh
+ January, 2020 +
+
+ +[<< Day 11](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/11_Day/11_day_destructuring_and_spread.md) | [Day 13>>](#) + +![Thirty Days Of JavaScript](../images/banners/day_1_12.png) + +- [📘 Day 12](#%f0%9f%93%98-day-12) + - [Regular Expressions](#regular-expressions) + - [RegEx parameters](#regex-parameters) + - [Pattern](#pattern) + - [Flags](#flags) + - [Creating a pattern with RegEx Constructor](#creating-a-pattern-with-regex-constructor) + - [Creating a pattern without RegEx Constructor](#creating-a-pattern-without-regex-constructor) + - [RegExp Object Methods](#regexp-object-methods) + - [Testing for a match](#testing-for-a-match) + - [Array containing all of the match](#array-containing-all-of-the-match) + - [Replacing a substring](#replacing-a-substring) + - [Square Bracket](#square-bracket) + - [Escape character(\\) in RegEx](#escape-character-in-regex) + - [One or more times(+)](#one-or-more-times) + - [Period(.)](#period) + - [Zero or more times(*)](#zero-or-more-times) + - [Zero or one times(?)](#zero-or-one-times) + - [Quantifier in RegEx](#quantifier-in-regex) + - [Cart ^](#cart) + - [Exact match](#exact-match) + - [💻 Exercises](#%f0%9f%92%bb-exercises) + - [Exercises: Level 1](#exercises-level-1) + - [Exercises: Level 2](#exercises-level-2) + - [Exercises: Level 3](#exercises-level-3) + +# 📘 Day 12 + +## Regular Expressions + +A regular expression or RegEx is a small programming language that helps to find pattern in data. A RegEx can be used to check if some pattern exists in a different data types. To use RegEx in JavaScript either we use RegEx constructor or we can declare a RegEx pattern using two forward slashes followed by a flag. We can create a pattern in two ways. + +To declare a string we use a single quote, double quote a backtick to declare a regular expression we use two forward slashes and an optional flag. The flag could be g, i, m, s, u or y. + +### RegEx parameters + +A regular expression takes two parameters. One required search pattern and an optional flag. + +#### Pattern + +A pattern could be a text or any form of pattern which some sort of similarity. For instance the word spam in an email could be a pattern we are interested to look for in an email or a phone number format number might be our interest to look for. + +#### Flags + +Flags are optional parameters in a regular expression which determine the type of searching. Let see some of the flags: + +- g:is a global flag which means looking for a pattern in whole text +- i: case insensitive flag(it searches for both lowercase and uppercase) +- m: multiline + +### Creating a pattern with RegEx Constructor + +Declaring regular expression without global flag and case insensitive flag. + +```js +// without flag +let pattern = 'love' +let regEx = new RegEx(pattern) +``` + +Declaring regular expression with global flag and case insensitive flag. + +```js +let pattern = 'love' +let flag = 'gi' +let regEx = new RegEx(pattern, flag) +``` + +Declaring a regex pattern using RegEx object. Writing the pattern and the flag inside the RegEx constructor + +```js +let regEx = new RegEx('love','gi') +``` + +### Creating a pattern without RegEx Constructor + +Declaring regular expression with global flag and case insensitive flag. + +```js +let regEx= /love/gi +``` + +The above regular expression is the same as the one which we created with RegEx constructor + +```js +let regEx= new RegEx('love','gi') +``` + +### RegExp Object Methods + +Let see some of RegEx methods + +#### Testing for a match + +*test()*:Tests for a match in a string. It returns true or false. + +```js +const str = 'I love JavaScript' +const pattern = /love/ +const result = pattern.test(str) +console.log(result) +``` + +```sh +true +``` + +#### Array containing all of the match + +*match()*:Returns an array containing all of the matches, including capturing groups, or null if no match is found. +If we do not use a global flag, match() returns an array containing the pattern, index, input and group. + +```js +const str = 'I love JavaScript' +const pattern = /love/ +const result = str.match(pattern) +console.log(result) +``` + +```sh +["love", index: 2, input: "I love JavaScript", groups: undefined] +``` + +```js +const str = 'I love JavaScript' +const pattern = /love/g +const result = str.match(pattern) +console.log(result) +``` + +```sh +["love"] +``` + +*search()*: Tests for a match in a string. It returns the index of the match, or -1 if the search fails. + +```js +const str = 'I love JavaScript' +const pattern = /love/g +const result = str.search(pattern) +console.log(result) +``` + +```sh +2 +``` + +#### Replacing a substring + +*replace()*: Executes a search for a match in a string, and replaces the matched substring with a replacement substring. + +```js +const txt = 'Python is the most beautiful language that a human begin has ever created.\ +I recommend python for a first programming language' + +matchReplaced = txt.replace(/Python|python/, 'JavaScript') +console.log(matchReplaced) +``` + +```sh +JavaScript is the most beautiful language that a human begin has ever created.I recommend python for a first programming language +``` + +```js +const txt = 'Python is the most beautiful language that a human begin has ever created.\ +I recommend python for a first programming language' + +matchReplaced = txt.replace(/Python|python/g, 'JavaScript') +console.log(matchReplaced) +``` + +```sh +JavaScript is the most beautiful language that a human begin has ever created.I recommend JavaScript for a first programming language +``` + +```js +const txt = 'Python is the most beautiful language that a human begin has ever created.\ +I recommend python for a first programming language' + +matchReplaced = txt.replace(/Python/gi, 'JavaScript') +console.log(matchReplaced) +``` + +```sh +JavaScript is the most beautiful language that a human begin has ever created.I recommend JavaScript for a first programming language +``` + +```js + +const txt = '%I a%m te%%a%%che%r% a%n%d %% I l%o%ve te%ach%ing.\ +T%he%re i%s n%o%th%ing as m%ore r%ewarding a%s e%duc%at%i%ng a%n%d e%m%p%ow%er%ing \ +p%e%o%ple.\ +I fo%und te%a%ching m%ore i%n%t%er%%es%ting t%h%an any other %jobs.\ +D%o%es thi%s m%ot%iv%a%te %y%o%u to b%e a t%e%a%cher.' + +matches = txt.replace(/%/g, '') +console.log(matches) +``` + +```sh +I am teacher and I love teaching.There is nothing as more rewarding as educating and empowering people.I found teaching more interesting than any other jobs.Does this motivate you to be a teacher. +``` + +* []: A set of characters + * [a-c] means, a or b or c + * [a-z] means, any letter a to z + * [A-Z] means, any character A to Z + * [0-3] means, 0 or 1 or 2 or 3 + * [0-9] means any number 0 to 9 + * [A-Za-z0-9] any character which is a to z, A to Z, 0 to 9 +* \\: uses to escape special characters + * \d mean:match where the string contains digits (numbers from 0-9) + * \D mean: match where the string does not contain digits +* . : any character except new line character(\n) +* ^: starts with + * r'^substring' eg r'^love', a sentence which starts with a word love + * r'[^abc] mean not a, not b, not c. +* $: ends with + * r'substring$' eg r'love$', sentence ends with a word love +* *: zero or more times + * r'[a]*' means a optional or it can be occur many times. +* +: one or more times + * r'[a]+' mean at least once or more times +* ?: zero or one times + * r'[a]?' mean zero times or once +* {3}: Exactly 3 characters +* {3,}: At least 3 character +* {3,8}: 3 to 8 characters +* |: Either or + * r'apple|banana' mean either of an apple or a banana +* (): Capture and group + +![Regular Expression cheat sheet](../images/regex.png) + +Let's use example to clarify the above meta characters + +### Square Bracket + +Let's use square bracket to include lower and upper case + +```js +const pattern = '[Aa]pple' // this square bracket mean either A or a +const txt = 'Apple and banana are fruits. An old cliche says an apple a day a doctor way has been replaced by a banana a day keeps the doctor far far away. ' +const matches = txt.match(pattern) + +console.log(matches) +``` + +```sh +["Apple", index: 0, input: "Apple and banana are fruits. An old cliche says an…by a banana a day keeps the doctor far far away. ", groups: undefined] + +``` + +```js +const pattern = /[Aa]pple/g // this square bracket mean either A or a +const txt = 'Apple and banana are fruits. An old cliche says an apple a day a doctor way has been replaced by a banana a day keeps the doctor far far away. ' +const matches = txt.match(pattern) + +console.log(matches) +``` + +```sh +["Apple", "apple"] +``` + +If we want to look for the banana, we write the pattern as follows: + +```js +const pattern = /[Aa]pple|[Bb]anana/g // this square bracket mean either A or a +const txt = 'Apple and banana are fruits. An old cliche says an apple a day a doctor way has been replaced by a banana a day keeps the doctor far far away. Banana is easy to eat too.' +const matches = txt.match(pattern) + +console.log(matches) +``` + +```sh +["Apple", "banana", "apple", "banana", "Banana"] +``` + +Using the square bracket and or operator , we manage to extract Apple, apple, Banana and banana. + +### Escape character(\\) in RegEx + +```js +const pattern = /\d/g // d is a special character which means digits +const txt = 'This regular expression example was made in January 12, 2020.' +const matches = txt. match(pattern) + +console.log(matches) // ["1", "2", "2", "0", "2", "0"], this is not what we want +``` + +```js +const pattern = /\d+/g // d is a special character which means digits +const txt = 'This regular expression example was made in January 12, 2020.' +const matches = txt. match(pattern) + +console.log(matches) // ["12", "2020"], this is not what we want +``` + +### One or more times(+) + +```js +const pattern = /\d+/g // d is a special character which means digits +const txt = 'This regular expression example was made in January 12, 2020.' +const matches = txt. match(pattern) +console.log(matches) // ["12", "2020"], this is not what we want +``` + +### Period(.) + +```js +const pattern = /[a]./g // this square bracket means a and . means any character except new line +const txt = 'Apple and banana are fruits' +const matches = txt.match(pattern) + +console.log(matches) // ["an", "an", "an", "a ", "ar"] +``` + +```js +const pattern = /[a].+/g // . any character, + any character one or more times +const txt = 'Apple and banana are fruits' +const matches = txt.match(pattern) + +console.log(matches) // ['and banana are fruits'] +``` + +### Zero or more times(*) + +Zero or many times. The pattern could may not occur or it can occur many times. + +```js + +const pattern = /[a].*/g //. any character, + any character one or more times +const txt = 'Apple and banana are fruits' +const matches = re.match(pattern) + +console.log(matches) // ['and banana are fruits'] + +``` + +### Zero or one times(?) + +Zero or one times. The pattern could may not occur or it may occur once. + +```js +const txt = 'I am not sure if there is a convention how to write the word e-mail.\ +Some people write it email others may write it as Email or E-mail.' +const pattern = /[Ee]-?mail/g // ? means optional +matches = txt.match(pattern) + +console.log(matches) // ["e-mail", "email", "Email", "E-mail"] + +``` + +### Quantifier in RegEx + +We can specify the length of the substring we look for in a text, using a curly bracket. Lets imagine, we are interested in substring that their length are 4 characters + +```js +const txt = 'This regular expression example was made in December 6, 2019.' +const pattern = /\d{4}/g // exactly four times +const matches = txt.match(pattern) +console.log(matches) // ['2019'] +``` + +```js +const txt = 'This regular expression example was made in December 6, 2019.' +const regex_pattern = /\d{1, 4}/g // 1 to 4 +const matches = txt.match(pattern) +console.log(matches) // ['6', '2019'] +``` + +### Cart ^ + +- Starts with + +```js +const txt = 'This regular expression example was made in December 6, 2019.' +const pattern = /^This/ // ^ means starts with +const matches = txt.match(pattern) +console.log(matches) / ['This'] +``` + +- Negation + +```js +const txt = 'This regular expression example was made in December 6, 2019.' +const pattern = /[^A-Za-z,. ]+/g // ^ in set character means negation, not A to Z, not a to z, no space, no coma no period +const matches = txt.match(pattern) +console.log(matches) ["6", "2019"] +``` + +### Exact match + +It should hav ^ starting and $ which is an end. + +```js +let pattern = /^[A-Z][a-z]{3,12}$/; +let name = 'Asabeneh'; +let result = pattern.test(name) + +console.log(result) // true +``` + +🌕 You are going far. Keep going! Now, you are super charged with the power of regular expression. You have the power to extract and clean any kind of text and you can make meaning out of unstructured data. You have just completed day 12 challenges and you are 12 steps a head in to your way to greatness. Now do some exercises for your brain and for your muscle. + +## 💻 Exercises + +### Exercises: Level 1 + +1. Calculate the total annual income of the person from the following text. ‘He earns 4000 euro from salary per month, 10000 euro annual bonus, 5500 euro online courses per month.’ + +### Exercises: Level 2 + +1. What is the most frequent word in the following paragraph ? + +```js + paragraph = 'I love teaching. If you do not love teaching what else can you love. I love Python if you do not love something which can give you all the capabilities to develop an application what else can you love. +``` + +```sh + [(6, 'love'), + (5, 'you'), + (3, 'can'), + (2, 'what'), + (2, 'teaching'), + (2, 'not'), + (2, 'else'), + (2, 'do'), + (2, 'I'), + (1, 'which'), + (1, 'to'), + (1, 'the'), + (1, 'something'), + (1, 'if'), + (1, 'give'), + (1, 'develop'), + (1, 'capabilities'), + (1, 'application'), + (1, 'an'), + (1, 'all'), + (1, 'Python'), + (1, 'If')] +``` + +1. The position of some particles on the horizontal x-axis -12, -4, -3 and -1 in the negative direction, 0 at origin, 4 and 8 in the positive direction. Extract these numbers and find the distance between the two furthest particles. + +```js +points = ['-1', '2', '-4', '-3', '-1', '0', '4', '8'] +sortedPoints = [-4, -3, -1, -1, 0, 2, 4, 8] +distance = 12 +``` + +1. Write a pattern which identify if a string is a valid JavaScript variable + + ```sh + is_valid_variable('first_name') # True + is_valid_variable('first-name') # False + is_valid_variable('1first_name') # False + is_valid_variable('firstname') # True + ``` + +### Exercises: Level 3 + +1. Writ a function which cleans text. Clean the following text. After cleaning, count three most frequent words in the string. + + ```js + sentence = '''%I $am@% a %tea@cher%, &and& I lo%#ve %tea@ching%;. There $is nothing; &as& mo@re rewarding as educa@ting &and& @emp%o@wering peo@ple. ;I found tea@ching m%o@re interesting tha@n any other %jo@bs. %Do@es thi%s mo@tivate yo@u to be a tea@cher!?''' + + console.log(cleanText(sentence)) + + I am a teacher and I love teaching There is nothing as more rewarding as educating and empowering people I found teaching more interesting than any other jobs Does this motivate you to be a teacher + ``` +1. Write a function which find the most frequent words. After cleaning, count three most frequent words in the string. + +```js + console.log(mostFrequentWords(cleaned_text)) + [(3, 'I'), (2, 'teaching'), (2, 'teacher')] +``` + +🎉 CONGRATULATIONS ! 🎉 + +[<< Day 11](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/11_Day/11_day_destructuring_and_spread.md) | [Day 13>>](#) diff --git a/12_Day/12_day_starter/data/countries_data.js b/12_Day/12_day_starter/data/countries_data.js new file mode 100644 index 0000000..92acddd --- /dev/null +++ b/12_Day/12_day_starter/data/countries_data.js @@ -0,0 +1,2013 @@ +const countries = [ + { + name: 'Afghanistan', + capital: 'Kabul', + languages: ['Pashto', 'Uzbek', 'Turkmen'], + population: 27657145, + flag: 'https://restcountries.eu/data/afg.svg', + currency: 'Afghan afghani' + }, + { + name: 'Åland Islands', + capital: 'Mariehamn', + languages: ['Swedish'], + population: 28875, + flag: 'https://restcountries.eu/data/ala.svg', + currency: 'Euro' + }, + { + name: 'Albania', + capital: 'Tirana', + languages: ['Albanian'], + population: 2886026, + flag: 'https://restcountries.eu/data/alb.svg', + currency: 'Albanian lek' + }, + { + name: 'Algeria', + capital: 'Algiers', + languages: ['Arabic'], + population: 40400000, + flag: 'https://restcountries.eu/data/dza.svg', + currency: 'Algerian dinar' + }, + { + name: 'American Samoa', + capital: 'Pago Pago', + languages: ['English', 'Samoan'], + population: 57100, + flag: 'https://restcountries.eu/data/asm.svg', + currency: 'United State Dollar' + }, + { + name: 'Andorra', + capital: 'Andorra la Vella', + languages: ['Catalan'], + population: 78014, + flag: 'https://restcountries.eu/data/and.svg', + currency: 'Euro' + }, + { + name: 'Angola', + capital: 'Luanda', + languages: ['Portuguese'], + population: 25868000, + flag: 'https://restcountries.eu/data/ago.svg', + currency: 'Angolan kwanza' + }, + { + name: 'Anguilla', + capital: 'The Valley', + languages: ['English'], + population: 13452, + flag: 'https://restcountries.eu/data/aia.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Antarctica', + capital: '', + languages: ['English', 'Russian'], + population: 1000, + flag: 'https://restcountries.eu/data/ata.svg', + currency: 'Australian dollar' + }, + { + name: 'Antigua and Barbuda', + capital: "Saint John's", + languages: ['English'], + population: 86295, + flag: 'https://restcountries.eu/data/atg.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Argentina', + capital: 'Buenos Aires', + languages: ['Spanish', 'Guaraní'], + population: 43590400, + flag: 'https://restcountries.eu/data/arg.svg', + currency: 'Argentine peso' + }, + { + name: 'Armenia', + capital: 'Yerevan', + languages: ['Armenian', 'Russian'], + population: 2994400, + flag: 'https://restcountries.eu/data/arm.svg', + currency: 'Armenian dram' + }, + { + name: 'Aruba', + capital: 'Oranjestad', + languages: ['Dutch', '(Eastern) Punjabi'], + population: 107394, + flag: 'https://restcountries.eu/data/abw.svg', + currency: 'Aruban florin' + }, + { + name: 'Australia', + capital: 'Canberra', + languages: ['English'], + population: 24117360, + flag: 'https://restcountries.eu/data/aus.svg', + currency: 'Australian dollar' + }, + { + name: 'Austria', + capital: 'Vienna', + languages: ['German'], + population: 8725931, + flag: 'https://restcountries.eu/data/aut.svg', + currency: 'Euro' + }, + { + name: 'Azerbaijan', + capital: 'Baku', + languages: ['Azerbaijani'], + population: 9730500, + flag: 'https://restcountries.eu/data/aze.svg', + currency: 'Azerbaijani manat' + }, + { + name: 'Bahamas', + capital: 'Nassau', + languages: ['English'], + population: 378040, + flag: 'https://restcountries.eu/data/bhs.svg', + currency: 'Bahamian dollar' + }, + { + name: 'Bahrain', + capital: 'Manama', + languages: ['Arabic'], + population: 1404900, + flag: 'https://restcountries.eu/data/bhr.svg', + currency: 'Bahraini dinar' + }, + { + name: 'Bangladesh', + capital: 'Dhaka', + languages: ['Bengali'], + population: 161006790, + flag: 'https://restcountries.eu/data/bgd.svg', + currency: 'Bangladeshi taka' + }, + { + name: 'Barbados', + capital: 'Bridgetown', + languages: ['English'], + population: 285000, + flag: 'https://restcountries.eu/data/brb.svg', + currency: 'Barbadian dollar' + }, + { + name: 'Belarus', + capital: 'Minsk', + languages: ['Belarusian', 'Russian'], + population: 9498700, + flag: 'https://restcountries.eu/data/blr.svg', + currency: 'New Belarusian ruble' + }, + { + name: 'Belgium', + capital: 'Brussels', + languages: ['Dutch', 'French', 'German'], + population: 11319511, + flag: 'https://restcountries.eu/data/bel.svg', + currency: 'Euro' + }, + { + name: 'Belize', + capital: 'Belmopan', + languages: ['English', 'Spanish'], + population: 370300, + flag: 'https://restcountries.eu/data/blz.svg', + currency: 'Belize dollar' + }, + { + name: 'Benin', + capital: 'Porto-Novo', + languages: ['French'], + population: 10653654, + flag: 'https://restcountries.eu/data/ben.svg', + currency: 'West African CFA franc' + }, + { + name: 'Bermuda', + capital: 'Hamilton', + languages: ['English'], + population: 61954, + flag: 'https://restcountries.eu/data/bmu.svg', + currency: 'Bermudian dollar' + }, + { + name: 'Bhutan', + capital: 'Thimphu', + languages: ['Dzongkha'], + population: 775620, + flag: 'https://restcountries.eu/data/btn.svg', + currency: 'Bhutanese ngultrum' + }, + { + name: 'Bolivia (Plurinational State of)', + capital: 'Sucre', + languages: ['Spanish', 'Aymara', 'Quechua'], + population: 10985059, + flag: 'https://restcountries.eu/data/bol.svg', + currency: 'Bolivian boliviano' + }, + { + name: 'Bonaire, Sint Eustatius and Saba', + capital: 'Kralendijk', + languages: ['Dutch'], + population: 17408, + flag: 'https://restcountries.eu/data/bes.svg', + currency: 'United States dollar' + }, + { + name: 'Bosnia and Herzegovina', + capital: 'Sarajevo', + languages: ['Bosnian', 'Croatian', 'Serbian'], + population: 3531159, + flag: 'https://restcountries.eu/data/bih.svg', + currency: 'Bosnia and Herzegovina convertible mark' + }, + { + name: 'Botswana', + capital: 'Gaborone', + languages: ['English', 'Tswana'], + population: 2141206, + flag: 'https://restcountries.eu/data/bwa.svg', + currency: 'Botswana pula' + }, + { + name: 'Bouvet Island', + capital: '', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 0, + flag: 'https://restcountries.eu/data/bvt.svg', + currency: 'Norwegian krone' + }, + { + name: 'Brazil', + capital: 'Brasília', + languages: ['Portuguese'], + population: 206135893, + flag: 'https://restcountries.eu/data/bra.svg', + currency: 'Brazilian real' + }, + { + name: 'British Indian Ocean Territory', + capital: 'Diego Garcia', + languages: ['English'], + population: 3000, + flag: 'https://restcountries.eu/data/iot.svg', + currency: 'United States dollar' + }, + { + name: 'United States Minor Outlying Islands', + capital: '', + languages: ['English'], + population: 300, + flag: 'https://restcountries.eu/data/umi.svg', + currency: 'United States Dollar' + }, + { + name: 'Virgin Islands (British)', + capital: 'Road Town', + languages: ['English'], + population: 28514, + flag: 'https://restcountries.eu/data/vgb.svg', + currency: '[D]' + }, + { + name: 'Virgin Islands (U.S.)', + capital: 'Charlotte Amalie', + languages: ['English'], + population: 114743, + flag: 'https://restcountries.eu/data/vir.svg', + currency: 'United States dollar' + }, + { + name: 'Brunei Darussalam', + capital: 'Bandar Seri Begawan', + languages: ['Malay'], + population: 411900, + flag: 'https://restcountries.eu/data/brn.svg', + currency: 'Brunei dollar' + }, + { + name: 'Bulgaria', + capital: 'Sofia', + languages: ['Bulgarian'], + population: 7153784, + flag: 'https://restcountries.eu/data/bgr.svg', + currency: 'Bulgarian lev' + }, + { + name: 'Burkina Faso', + capital: 'Ouagadougou', + languages: ['French', 'Fula'], + population: 19034397, + flag: 'https://restcountries.eu/data/bfa.svg', + currency: 'West African CFA franc' + }, + { + name: 'Burundi', + capital: 'Bujumbura', + languages: ['French', 'Kirundi'], + population: 10114505, + flag: 'https://restcountries.eu/data/bdi.svg', + currency: 'Burundian franc' + }, + { + name: 'Cambodia', + capital: 'Phnom Penh', + languages: ['Khmer'], + population: 15626444, + flag: 'https://restcountries.eu/data/khm.svg', + currency: 'Cambodian riel' + }, + { + name: 'Cameroon', + capital: 'Yaoundé', + languages: ['English', 'French'], + population: 22709892, + flag: 'https://restcountries.eu/data/cmr.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Canada', + capital: 'Ottawa', + languages: ['English', 'French'], + population: 36155487, + flag: 'https://restcountries.eu/data/can.svg', + currency: 'Canadian dollar' + }, + { + name: 'Cabo Verde', + capital: 'Praia', + languages: ['Portuguese'], + population: 531239, + flag: 'https://restcountries.eu/data/cpv.svg', + currency: 'Cape Verdean escudo' + }, + { + name: 'Cayman Islands', + capital: 'George Town', + languages: ['English'], + population: 58238, + flag: 'https://restcountries.eu/data/cym.svg', + currency: 'Cayman Islands dollar' + }, + { + name: 'Central African Republic', + capital: 'Bangui', + languages: ['French', 'Sango'], + population: 4998000, + flag: 'https://restcountries.eu/data/caf.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chad', + capital: "N'Djamena", + languages: ['French', 'Arabic'], + population: 14497000, + flag: 'https://restcountries.eu/data/tcd.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chile', + capital: 'Santiago', + languages: ['Spanish'], + population: 18191900, + flag: 'https://restcountries.eu/data/chl.svg', + currency: 'Chilean peso' + }, + { + name: 'China', + capital: 'Beijing', + languages: ['Chinese'], + population: 1377422166, + flag: 'https://restcountries.eu/data/chn.svg', + currency: 'Chinese yuan' + }, + { + name: 'Christmas Island', + capital: 'Flying Fish Cove', + languages: ['English'], + population: 2072, + flag: 'https://restcountries.eu/data/cxr.svg', + currency: 'Australian dollar' + }, + { + name: 'Cocos (Keeling) Islands', + capital: 'West Island', + languages: ['English'], + population: 550, + flag: 'https://restcountries.eu/data/cck.svg', + currency: 'Australian dollar' + }, + { + name: 'Colombia', + capital: 'Bogotá', + languages: ['Spanish'], + population: 48759958, + flag: 'https://restcountries.eu/data/col.svg', + currency: 'Colombian peso' + }, + { + name: 'Comoros', + capital: 'Moroni', + languages: ['Arabic', 'French'], + population: 806153, + flag: 'https://restcountries.eu/data/com.svg', + currency: 'Comorian franc' + }, + { + name: 'Congo', + capital: 'Brazzaville', + languages: ['French', 'Lingala'], + population: 4741000, + flag: 'https://restcountries.eu/data/cog.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Congo (Democratic Republic of the)', + capital: 'Kinshasa', + languages: ['French', 'Lingala', 'Kongo', 'Swahili', 'Luba-Katanga'], + population: 85026000, + flag: 'https://restcountries.eu/data/cod.svg', + currency: 'Congolese franc' + }, + { + name: 'Cook Islands', + capital: 'Avarua', + languages: ['English'], + population: 18100, + flag: 'https://restcountries.eu/data/cok.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Costa Rica', + capital: 'San José', + languages: ['Spanish'], + population: 4890379, + flag: 'https://restcountries.eu/data/cri.svg', + currency: 'Costa Rican colón' + }, + { + name: 'Croatia', + capital: 'Zagreb', + languages: ['Croatian'], + population: 4190669, + flag: 'https://restcountries.eu/data/hrv.svg', + currency: 'Croatian kuna' + }, + { + name: 'Cuba', + capital: 'Havana', + languages: ['Spanish'], + population: 11239004, + flag: 'https://restcountries.eu/data/cub.svg', + currency: 'Cuban convertible peso' + }, + { + name: 'Curaçao', + capital: 'Willemstad', + languages: ['Dutch', '(Eastern) Punjabi', 'English'], + population: 154843, + flag: 'https://restcountries.eu/data/cuw.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Cyprus', + capital: 'Nicosia', + languages: ['Greek (modern)', 'Turkish', 'Armenian'], + population: 847000, + flag: 'https://restcountries.eu/data/cyp.svg', + currency: 'Euro' + }, + { + name: 'Czech Republic', + capital: 'Prague', + languages: ['Czech', 'Slovak'], + population: 10558524, + flag: 'https://restcountries.eu/data/cze.svg', + currency: 'Czech koruna' + }, + { + name: 'Denmark', + capital: 'Copenhagen', + languages: ['Danish'], + population: 5717014, + flag: 'https://restcountries.eu/data/dnk.svg', + currency: 'Danish krone' + }, + { + name: 'Djibouti', + capital: 'Djibouti', + languages: ['French', 'Arabic'], + population: 900000, + flag: 'https://restcountries.eu/data/dji.svg', + currency: 'Djiboutian franc' + }, + { + name: 'Dominica', + capital: 'Roseau', + languages: ['English'], + population: 71293, + flag: 'https://restcountries.eu/data/dma.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Dominican Republic', + capital: 'Santo Domingo', + languages: ['Spanish'], + population: 10075045, + flag: 'https://restcountries.eu/data/dom.svg', + currency: 'Dominican peso' + }, + { + name: 'Ecuador', + capital: 'Quito', + languages: ['Spanish'], + population: 16545799, + flag: 'https://restcountries.eu/data/ecu.svg', + currency: 'United States dollar' + }, + { + name: 'Egypt', + capital: 'Cairo', + languages: ['Arabic'], + population: 91290000, + flag: 'https://restcountries.eu/data/egy.svg', + currency: 'Egyptian pound' + }, + { + name: 'El Salvador', + capital: 'San Salvador', + languages: ['Spanish'], + population: 6520675, + flag: 'https://restcountries.eu/data/slv.svg', + currency: 'United States dollar' + }, + { + name: 'Equatorial Guinea', + capital: 'Malabo', + languages: ['Spanish', 'French'], + population: 1222442, + flag: 'https://restcountries.eu/data/gnq.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Eritrea', + capital: 'Asmara', + languages: ['Tigrinya', 'Arabic', 'English'], + population: 5352000, + flag: 'https://restcountries.eu/data/eri.svg', + currency: 'Eritrean nakfa' + }, + { + name: 'Estonia', + capital: 'Tallinn', + languages: ['Estonian'], + population: 1315944, + flag: 'https://restcountries.eu/data/est.svg', + currency: 'Euro' + }, + { + name: 'Ethiopia', + capital: 'Addis Ababa', + languages: ['Amharic'], + population: 92206005, + flag: 'https://restcountries.eu/data/eth.svg', + currency: 'Ethiopian birr' + }, + { + name: 'Falkland Islands (Malvinas)', + capital: 'Stanley', + languages: ['English'], + population: 2563, + flag: 'https://restcountries.eu/data/flk.svg', + currency: 'Falkland Islands pound' + }, + { + name: 'Faroe Islands', + capital: 'Tórshavn', + languages: ['Faroese'], + population: 49376, + flag: 'https://restcountries.eu/data/fro.svg', + currency: 'Danish krone' + }, + { + name: 'Fiji', + capital: 'Suva', + languages: ['English', 'Fijian', 'Hindi', 'Urdu'], + population: 867000, + flag: 'https://restcountries.eu/data/fji.svg', + currency: 'Fijian dollar' + }, + { + name: 'Finland', + capital: 'Helsinki', + languages: ['Finnish', 'Swedish'], + population: 5491817, + flag: 'https://restcountries.eu/data/fin.svg', + currency: 'Euro' + }, + { + name: 'France', + capital: 'Paris', + languages: ['French'], + population: 66710000, + flag: 'https://restcountries.eu/data/fra.svg', + currency: 'Euro' + }, + { + name: 'French Guiana', + capital: 'Cayenne', + languages: ['French'], + population: 254541, + flag: 'https://restcountries.eu/data/guf.svg', + currency: 'Euro' + }, + { + name: 'French Polynesia', + capital: 'Papeetē', + languages: ['French'], + population: 271800, + flag: 'https://restcountries.eu/data/pyf.svg', + currency: 'CFP franc' + }, + { + name: 'French Southern Territories', + capital: 'Port-aux-Français', + languages: ['French'], + population: 140, + flag: 'https://restcountries.eu/data/atf.svg', + currency: 'Euro' + }, + { + name: 'Gabon', + capital: 'Libreville', + languages: ['French'], + population: 1802278, + flag: 'https://restcountries.eu/data/gab.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Gambia', + capital: 'Banjul', + languages: ['English'], + population: 1882450, + flag: 'https://restcountries.eu/data/gmb.svg', + currency: 'Gambian dalasi' + }, + { + name: 'Georgia', + capital: 'Tbilisi', + languages: ['Georgian'], + population: 3720400, + flag: 'https://restcountries.eu/data/geo.svg', + currency: 'Georgian Lari' + }, + { + name: 'Germany', + capital: 'Berlin', + languages: ['German'], + population: 81770900, + flag: 'https://restcountries.eu/data/deu.svg', + currency: 'Euro' + }, + { + name: 'Ghana', + capital: 'Accra', + languages: ['English'], + population: 27670174, + flag: 'https://restcountries.eu/data/gha.svg', + currency: 'Ghanaian cedi' + }, + { + name: 'Gibraltar', + capital: 'Gibraltar', + languages: ['English'], + population: 33140, + flag: 'https://restcountries.eu/data/gib.svg', + currency: 'Gibraltar pound' + }, + { + name: 'Greece', + capital: 'Athens', + languages: ['Greek (modern)'], + population: 10858018, + flag: 'https://restcountries.eu/data/grc.svg', + currency: 'Euro' + }, + { + name: 'Greenland', + capital: 'Nuuk', + languages: ['Kalaallisut'], + population: 55847, + flag: 'https://restcountries.eu/data/grl.svg', + currency: 'Danish krone' + }, + { + name: 'Grenada', + capital: "St. George's", + languages: ['English'], + population: 103328, + flag: 'https://restcountries.eu/data/grd.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Guadeloupe', + capital: 'Basse-Terre', + languages: ['French'], + population: 400132, + flag: 'https://restcountries.eu/data/glp.svg', + currency: 'Euro' + }, + { + name: 'Guam', + capital: 'Hagåtña', + languages: ['English', 'Chamorro', 'Spanish'], + population: 184200, + flag: 'https://restcountries.eu/data/gum.svg', + currency: 'United States dollar' + }, + { + name: 'Guatemala', + capital: 'Guatemala City', + languages: ['Spanish'], + population: 16176133, + flag: 'https://restcountries.eu/data/gtm.svg', + currency: 'Guatemalan quetzal' + }, + { + name: 'Guernsey', + capital: 'St. Peter Port', + languages: ['English', 'French'], + population: 62999, + flag: 'https://restcountries.eu/data/ggy.svg', + currency: 'British pound' + }, + { + name: 'Guinea', + capital: 'Conakry', + languages: ['French', 'Fula'], + population: 12947000, + flag: 'https://restcountries.eu/data/gin.svg', + currency: 'Guinean franc' + }, + { + name: 'Guinea-Bissau', + capital: 'Bissau', + languages: ['Portuguese'], + population: 1547777, + flag: 'https://restcountries.eu/data/gnb.svg', + currency: 'West African CFA franc' + }, + { + name: 'Guyana', + capital: 'Georgetown', + languages: ['English'], + population: 746900, + flag: 'https://restcountries.eu/data/guy.svg', + currency: 'Guyanese dollar' + }, + { + name: 'Haiti', + capital: 'Port-au-Prince', + languages: ['French', 'Haitian'], + population: 11078033, + flag: 'https://restcountries.eu/data/hti.svg', + currency: 'Haitian gourde' + }, + { + name: 'Heard Island and McDonald Islands', + capital: '', + languages: ['English'], + population: 0, + flag: 'https://restcountries.eu/data/hmd.svg', + currency: 'Australian dollar' + }, + { + name: 'Holy See', + capital: 'Rome', + languages: ['Latin', 'Italian', 'French', 'German'], + population: 451, + flag: 'https://restcountries.eu/data/vat.svg', + currency: 'Euro' + }, + { + name: 'Honduras', + capital: 'Tegucigalpa', + languages: ['Spanish'], + population: 8576532, + flag: 'https://restcountries.eu/data/hnd.svg', + currency: 'Honduran lempira' + }, + { + name: 'Hong Kong', + capital: 'City of Victoria', + languages: ['English', 'Chinese'], + population: 7324300, + flag: 'https://restcountries.eu/data/hkg.svg', + currency: 'Hong Kong dollar' + }, + { + name: 'Hungary', + capital: 'Budapest', + languages: ['Hungarian'], + population: 9823000, + flag: 'https://restcountries.eu/data/hun.svg', + currency: 'Hungarian forint' + }, + { + name: 'Iceland', + capital: 'Reykjavík', + languages: ['Icelandic'], + population: 334300, + flag: 'https://restcountries.eu/data/isl.svg', + currency: 'Icelandic króna' + }, + { + name: 'India', + capital: 'New Delhi', + languages: ['Hindi', 'English'], + population: 1295210000, + flag: 'https://restcountries.eu/data/ind.svg', + currency: 'Indian rupee' + }, + { + name: 'Indonesia', + capital: 'Jakarta', + languages: ['Indonesian'], + population: 258705000, + flag: 'https://restcountries.eu/data/idn.svg', + currency: 'Indonesian rupiah' + }, + { + name: "Côte d'Ivoire", + capital: 'Yamoussoukro', + languages: ['French'], + population: 22671331, + flag: 'https://restcountries.eu/data/civ.svg', + currency: 'West African CFA franc' + }, + { + name: 'Iran (Islamic Republic of)', + capital: 'Tehran', + languages: ['Persian (Farsi)'], + population: 79369900, + flag: 'https://restcountries.eu/data/irn.svg', + currency: 'Iranian rial' + }, + { + name: 'Iraq', + capital: 'Baghdad', + languages: ['Arabic', 'Kurdish'], + population: 37883543, + flag: 'https://restcountries.eu/data/irq.svg', + currency: 'Iraqi dinar' + }, + { + name: 'Ireland', + capital: 'Dublin', + languages: ['Irish', 'English'], + population: 6378000, + flag: 'https://restcountries.eu/data/irl.svg', + currency: 'Euro' + }, + { + name: 'Isle of Man', + capital: 'Douglas', + languages: ['English', 'Manx'], + population: 84497, + flag: 'https://restcountries.eu/data/imn.svg', + currency: 'British pound' + }, + { + name: 'Israel', + capital: 'Jerusalem', + languages: ['Hebrew (modern)', 'Arabic'], + population: 8527400, + flag: 'https://restcountries.eu/data/isr.svg', + currency: 'Israeli new shekel' + }, + { + name: 'Italy', + capital: 'Rome', + languages: ['Italian'], + population: 60665551, + flag: 'https://restcountries.eu/data/ita.svg', + currency: 'Euro' + }, + { + name: 'Jamaica', + capital: 'Kingston', + languages: ['English'], + population: 2723246, + flag: 'https://restcountries.eu/data/jam.svg', + currency: 'Jamaican dollar' + }, + { + name: 'Japan', + capital: 'Tokyo', + languages: ['Japanese'], + population: 126960000, + flag: 'https://restcountries.eu/data/jpn.svg', + currency: 'Japanese yen' + }, + { + name: 'Jersey', + capital: 'Saint Helier', + languages: ['English', 'French'], + population: 100800, + flag: 'https://restcountries.eu/data/jey.svg', + currency: 'British pound' + }, + { + name: 'Jordan', + capital: 'Amman', + languages: ['Arabic'], + population: 9531712, + flag: 'https://restcountries.eu/data/jor.svg', + currency: 'Jordanian dinar' + }, + { + name: 'Kazakhstan', + capital: 'Astana', + languages: ['Kazakh', 'Russian'], + population: 17753200, + flag: 'https://restcountries.eu/data/kaz.svg', + currency: 'Kazakhstani tenge' + }, + { + name: 'Kenya', + capital: 'Nairobi', + languages: ['English', 'Swahili'], + population: 47251000, + flag: 'https://restcountries.eu/data/ken.svg', + currency: 'Kenyan shilling' + }, + { + name: 'Kiribati', + capital: 'South Tarawa', + languages: ['English'], + population: 113400, + flag: 'https://restcountries.eu/data/kir.svg', + currency: 'Australian dollar' + }, + { + name: 'Kuwait', + capital: 'Kuwait City', + languages: ['Arabic'], + population: 4183658, + flag: 'https://restcountries.eu/data/kwt.svg', + currency: 'Kuwaiti dinar' + }, + { + name: 'Kyrgyzstan', + capital: 'Bishkek', + languages: ['Kyrgyz', 'Russian'], + population: 6047800, + flag: 'https://restcountries.eu/data/kgz.svg', + currency: 'Kyrgyzstani som' + }, + { + name: "Lao People's Democratic Republic", + capital: 'Vientiane', + languages: ['Lao'], + population: 6492400, + flag: 'https://restcountries.eu/data/lao.svg', + currency: 'Lao kip' + }, + { + name: 'Latvia', + capital: 'Riga', + languages: ['Latvian'], + population: 1961600, + flag: 'https://restcountries.eu/data/lva.svg', + currency: 'Euro' + }, + { + name: 'Lebanon', + capital: 'Beirut', + languages: ['Arabic', 'French'], + population: 5988000, + flag: 'https://restcountries.eu/data/lbn.svg', + currency: 'Lebanese pound' + }, + { + name: 'Lesotho', + capital: 'Maseru', + languages: ['English', 'Southern Sotho'], + population: 1894194, + flag: 'https://restcountries.eu/data/lso.svg', + currency: 'Lesotho loti' + }, + { + name: 'Liberia', + capital: 'Monrovia', + languages: ['English'], + population: 4615000, + flag: 'https://restcountries.eu/data/lbr.svg', + currency: 'Liberian dollar' + }, + { + name: 'Libya', + capital: 'Tripoli', + languages: ['Arabic'], + population: 6385000, + flag: 'https://restcountries.eu/data/lby.svg', + currency: 'Libyan dinar' + }, + { + name: 'Liechtenstein', + capital: 'Vaduz', + languages: ['German'], + population: 37623, + flag: 'https://restcountries.eu/data/lie.svg', + currency: 'Swiss franc' + }, + { + name: 'Lithuania', + capital: 'Vilnius', + languages: ['Lithuanian'], + population: 2872294, + flag: 'https://restcountries.eu/data/ltu.svg', + currency: 'Euro' + }, + { + name: 'Luxembourg', + capital: 'Luxembourg', + languages: ['French', 'German', 'Luxembourgish'], + population: 576200, + flag: 'https://restcountries.eu/data/lux.svg', + currency: 'Euro' + }, + { + name: 'Macao', + capital: '', + languages: ['Chinese', 'Portuguese'], + population: 649100, + flag: 'https://restcountries.eu/data/mac.svg', + currency: 'Macanese pataca' + }, + { + name: 'Macedonia (the former Yugoslav Republic of)', + capital: 'Skopje', + languages: ['Macedonian'], + population: 2058539, + flag: 'https://restcountries.eu/data/mkd.svg', + currency: 'Macedonian denar' + }, + { + name: 'Madagascar', + capital: 'Antananarivo', + languages: ['French', 'Malagasy'], + population: 22434363, + flag: 'https://restcountries.eu/data/mdg.svg', + currency: 'Malagasy ariary' + }, + { + name: 'Malawi', + capital: 'Lilongwe', + languages: ['English', 'Chichewa'], + population: 16832910, + flag: 'https://restcountries.eu/data/mwi.svg', + currency: 'Malawian kwacha' + }, + { + name: 'Malaysia', + capital: 'Kuala Lumpur', + languages: ['Malaysian'], + population: 31405416, + flag: 'https://restcountries.eu/data/mys.svg', + currency: 'Malaysian ringgit' + }, + { + name: 'Maldives', + capital: 'Malé', + languages: ['Divehi'], + population: 344023, + flag: 'https://restcountries.eu/data/mdv.svg', + currency: 'Maldivian rufiyaa' + }, + { + name: 'Mali', + capital: 'Bamako', + languages: ['French'], + population: 18135000, + flag: 'https://restcountries.eu/data/mli.svg', + currency: 'West African CFA franc' + }, + { + name: 'Malta', + capital: 'Valletta', + languages: ['Maltese', 'English'], + population: 425384, + flag: 'https://restcountries.eu/data/mlt.svg', + currency: 'Euro' + }, + { + name: 'Marshall Islands', + capital: 'Majuro', + languages: ['English', 'Marshallese'], + population: 54880, + flag: 'https://restcountries.eu/data/mhl.svg', + currency: 'United States dollar' + }, + { + name: 'Martinique', + capital: 'Fort-de-France', + languages: ['French'], + population: 378243, + flag: 'https://restcountries.eu/data/mtq.svg', + currency: 'Euro' + }, + { + name: 'Mauritania', + capital: 'Nouakchott', + languages: ['Arabic'], + population: 3718678, + flag: 'https://restcountries.eu/data/mrt.svg', + currency: 'Mauritanian ouguiya' + }, + { + name: 'Mauritius', + capital: 'Port Louis', + languages: ['English'], + population: 1262879, + flag: 'https://restcountries.eu/data/mus.svg', + currency: 'Mauritian rupee' + }, + { + name: 'Mayotte', + capital: 'Mamoudzou', + languages: ['French'], + population: 226915, + flag: 'https://restcountries.eu/data/myt.svg', + currency: 'Euro' + }, + { + name: 'Mexico', + capital: 'Mexico City', + languages: ['Spanish'], + population: 122273473, + flag: 'https://restcountries.eu/data/mex.svg', + currency: 'Mexican peso' + }, + { + name: 'Micronesia (Federated States of)', + capital: 'Palikir', + languages: ['English'], + population: 102800, + flag: 'https://restcountries.eu/data/fsm.svg', + currency: '[D]' + }, + { + name: 'Moldova (Republic of)', + capital: 'Chișinău', + languages: ['Romanian'], + population: 3553100, + flag: 'https://restcountries.eu/data/mda.svg', + currency: 'Moldovan leu' + }, + { + name: 'Monaco', + capital: 'Monaco', + languages: ['French'], + population: 38400, + flag: 'https://restcountries.eu/data/mco.svg', + currency: 'Euro' + }, + { + name: 'Mongolia', + capital: 'Ulan Bator', + languages: ['Mongolian'], + population: 3093100, + flag: 'https://restcountries.eu/data/mng.svg', + currency: 'Mongolian tögrög' + }, + { + name: 'Montenegro', + capital: 'Podgorica', + languages: ['Serbian', 'Bosnian', 'Albanian', 'Croatian'], + population: 621810, + flag: 'https://restcountries.eu/data/mne.svg', + currency: 'Euro' + }, + { + name: 'Montserrat', + capital: 'Plymouth', + languages: ['English'], + population: 4922, + flag: 'https://restcountries.eu/data/msr.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Morocco', + capital: 'Rabat', + languages: ['Arabic'], + population: 33337529, + flag: 'https://restcountries.eu/data/mar.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Mozambique', + capital: 'Maputo', + languages: ['Portuguese'], + population: 26423700, + flag: 'https://restcountries.eu/data/moz.svg', + currency: 'Mozambican metical' + }, + { + name: 'Myanmar', + capital: 'Naypyidaw', + languages: ['Burmese'], + population: 51419420, + flag: 'https://restcountries.eu/data/mmr.svg', + currency: 'Burmese kyat' + }, + { + name: 'Namibia', + capital: 'Windhoek', + languages: ['English', 'Afrikaans'], + population: 2324388, + flag: 'https://restcountries.eu/data/nam.svg', + currency: 'Namibian dollar' + }, + { + name: 'Nauru', + capital: 'Yaren', + languages: ['English', 'Nauruan'], + population: 10084, + flag: 'https://restcountries.eu/data/nru.svg', + currency: 'Australian dollar' + }, + { + name: 'Nepal', + capital: 'Kathmandu', + languages: ['Nepali'], + population: 28431500, + flag: 'https://restcountries.eu/data/npl.svg', + currency: 'Nepalese rupee' + }, + { + name: 'Netherlands', + capital: 'Amsterdam', + languages: ['Dutch'], + population: 17019800, + flag: 'https://restcountries.eu/data/nld.svg', + currency: 'Euro' + }, + { + name: 'New Caledonia', + capital: 'Nouméa', + languages: ['French'], + population: 268767, + flag: 'https://restcountries.eu/data/ncl.svg', + currency: 'CFP franc' + }, + { + name: 'New Zealand', + capital: 'Wellington', + languages: ['English', 'Māori'], + population: 4697854, + flag: 'https://restcountries.eu/data/nzl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Nicaragua', + capital: 'Managua', + languages: ['Spanish'], + population: 6262703, + flag: 'https://restcountries.eu/data/nic.svg', + currency: 'Nicaraguan córdoba' + }, + { + name: 'Niger', + capital: 'Niamey', + languages: ['French'], + population: 20715000, + flag: 'https://restcountries.eu/data/ner.svg', + currency: 'West African CFA franc' + }, + { + name: 'Nigeria', + capital: 'Abuja', + languages: ['English'], + population: 186988000, + flag: 'https://restcountries.eu/data/nga.svg', + currency: 'Nigerian naira' + }, + { + name: 'Niue', + capital: 'Alofi', + languages: ['English'], + population: 1470, + flag: 'https://restcountries.eu/data/niu.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Norfolk Island', + capital: 'Kingston', + languages: ['English'], + population: 2302, + flag: 'https://restcountries.eu/data/nfk.svg', + currency: 'Australian dollar' + }, + { + name: "Korea (Democratic People's Republic of)", + capital: 'Pyongyang', + languages: ['Korean'], + population: 25281000, + flag: 'https://restcountries.eu/data/prk.svg', + currency: 'North Korean won' + }, + { + name: 'Northern Mariana Islands', + capital: 'Saipan', + languages: ['English', 'Chamorro'], + population: 56940, + flag: 'https://restcountries.eu/data/mnp.svg', + currency: 'United States dollar' + }, + { + name: 'Norway', + capital: 'Oslo', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 5223256, + flag: 'https://restcountries.eu/data/nor.svg', + currency: 'Norwegian krone' + }, + { + name: 'Oman', + capital: 'Muscat', + languages: ['Arabic'], + population: 4420133, + flag: 'https://restcountries.eu/data/omn.svg', + currency: 'Omani rial' + }, + { + name: 'Pakistan', + capital: 'Islamabad', + languages: ['English', 'Urdu'], + population: 194125062, + flag: 'https://restcountries.eu/data/pak.svg', + currency: 'Pakistani rupee' + }, + { + name: 'Palau', + capital: 'Ngerulmud', + languages: ['English'], + population: 17950, + flag: 'https://restcountries.eu/data/plw.svg', + currency: '[E]' + }, + { + name: 'Palestine, State of', + capital: 'Ramallah', + languages: ['Arabic'], + population: 4682467, + flag: 'https://restcountries.eu/data/pse.svg', + currency: 'Israeli new sheqel' + }, + { + name: 'Panama', + capital: 'Panama City', + languages: ['Spanish'], + population: 3814672, + flag: 'https://restcountries.eu/data/pan.svg', + currency: 'Panamanian balboa' + }, + { + name: 'Papua New Guinea', + capital: 'Port Moresby', + languages: ['English'], + population: 8083700, + flag: 'https://restcountries.eu/data/png.svg', + currency: 'Papua New Guinean kina' + }, + { + name: 'Paraguay', + capital: 'Asunción', + languages: ['Spanish', 'Guaraní'], + population: 6854536, + flag: 'https://restcountries.eu/data/pry.svg', + currency: 'Paraguayan guaraní' + }, + { + name: 'Peru', + capital: 'Lima', + languages: ['Spanish'], + population: 31488700, + flag: 'https://restcountries.eu/data/per.svg', + currency: 'Peruvian sol' + }, + { + name: 'Philippines', + capital: 'Manila', + languages: ['English'], + population: 103279800, + flag: 'https://restcountries.eu/data/phl.svg', + currency: 'Philippine peso' + }, + { + name: 'Pitcairn', + capital: 'Adamstown', + languages: ['English'], + population: 56, + flag: 'https://restcountries.eu/data/pcn.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Poland', + capital: 'Warsaw', + languages: ['Polish'], + population: 38437239, + flag: 'https://restcountries.eu/data/pol.svg', + currency: 'Polish złoty' + }, + { + name: 'Portugal', + capital: 'Lisbon', + languages: ['Portuguese'], + population: 10374822, + flag: 'https://restcountries.eu/data/prt.svg', + currency: 'Euro' + }, + { + name: 'Puerto Rico', + capital: 'San Juan', + languages: ['Spanish', 'English'], + population: 3474182, + flag: 'https://restcountries.eu/data/pri.svg', + currency: 'United States dollar' + }, + { + name: 'Qatar', + capital: 'Doha', + languages: ['Arabic'], + population: 2587564, + flag: 'https://restcountries.eu/data/qat.svg', + currency: 'Qatari riyal' + }, + { + name: 'Republic of Kosovo', + capital: 'Pristina', + languages: ['Albanian', 'Serbian'], + population: 1733842, + flag: 'https://restcountries.eu/data/kos.svg', + currency: 'Euro' + }, + { + name: 'Réunion', + capital: 'Saint-Denis', + languages: ['French'], + population: 840974, + flag: 'https://restcountries.eu/data/reu.svg', + currency: 'Euro' + }, + { + name: 'Romania', + capital: 'Bucharest', + languages: ['Romanian'], + population: 19861408, + flag: 'https://restcountries.eu/data/rou.svg', + currency: 'Romanian leu' + }, + { + name: 'Russian Federation', + capital: 'Moscow', + languages: ['Russian'], + population: 146599183, + flag: 'https://restcountries.eu/data/rus.svg', + currency: 'Russian ruble' + }, + { + name: 'Rwanda', + capital: 'Kigali', + languages: ['Kinyarwanda', 'English', 'French'], + population: 11553188, + flag: 'https://restcountries.eu/data/rwa.svg', + currency: 'Rwandan franc' + }, + { + name: 'Saint Barthélemy', + capital: 'Gustavia', + languages: ['French'], + population: 9417, + flag: 'https://restcountries.eu/data/blm.svg', + currency: 'Euro' + }, + { + name: 'Saint Helena, Ascension and Tristan da Cunha', + capital: 'Jamestown', + languages: ['English'], + population: 4255, + flag: 'https://restcountries.eu/data/shn.svg', + currency: 'Saint Helena pound' + }, + { + name: 'Saint Kitts and Nevis', + capital: 'Basseterre', + languages: ['English'], + population: 46204, + flag: 'https://restcountries.eu/data/kna.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Lucia', + capital: 'Castries', + languages: ['English'], + population: 186000, + flag: 'https://restcountries.eu/data/lca.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Martin (French part)', + capital: 'Marigot', + languages: ['English', 'French', 'Dutch'], + population: 36979, + flag: 'https://restcountries.eu/data/maf.svg', + currency: 'Euro' + }, + { + name: 'Saint Pierre and Miquelon', + capital: 'Saint-Pierre', + languages: ['French'], + population: 6069, + flag: 'https://restcountries.eu/data/spm.svg', + currency: 'Euro' + }, + { + name: 'Saint Vincent and the Grenadines', + capital: 'Kingstown', + languages: ['English'], + population: 109991, + flag: 'https://restcountries.eu/data/vct.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Samoa', + capital: 'Apia', + languages: ['Samoan', 'English'], + population: 194899, + flag: 'https://restcountries.eu/data/wsm.svg', + currency: 'Samoan tālā' + }, + { + name: 'San Marino', + capital: 'City of San Marino', + languages: ['Italian'], + population: 33005, + flag: 'https://restcountries.eu/data/smr.svg', + currency: 'Euro' + }, + { + name: 'Sao Tome and Principe', + capital: 'São Tomé', + languages: ['Portuguese'], + population: 187356, + flag: 'https://restcountries.eu/data/stp.svg', + currency: 'São Tomé and Príncipe dobra' + }, + { + name: 'Saudi Arabia', + capital: 'Riyadh', + languages: ['Arabic'], + population: 32248200, + flag: 'https://restcountries.eu/data/sau.svg', + currency: 'Saudi riyal' + }, + { + name: 'Senegal', + capital: 'Dakar', + languages: ['French'], + population: 14799859, + flag: 'https://restcountries.eu/data/sen.svg', + currency: 'West African CFA franc' + }, + { + name: 'Serbia', + capital: 'Belgrade', + languages: ['Serbian'], + population: 7076372, + flag: 'https://restcountries.eu/data/srb.svg', + currency: 'Serbian dinar' + }, + { + name: 'Seychelles', + capital: 'Victoria', + languages: ['French', 'English'], + population: 91400, + flag: 'https://restcountries.eu/data/syc.svg', + currency: 'Seychellois rupee' + }, + { + name: 'Sierra Leone', + capital: 'Freetown', + languages: ['English'], + population: 7075641, + flag: 'https://restcountries.eu/data/sle.svg', + currency: 'Sierra Leonean leone' + }, + { + name: 'Singapore', + capital: 'Singapore', + languages: ['English', 'Malay', 'Tamil', 'Chinese'], + population: 5535000, + flag: 'https://restcountries.eu/data/sgp.svg', + currency: 'Brunei dollar' + }, + { + name: 'Sint Maarten (Dutch part)', + capital: 'Philipsburg', + languages: ['Dutch', 'English'], + population: 38247, + flag: 'https://restcountries.eu/data/sxm.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Slovakia', + capital: 'Bratislava', + languages: ['Slovak'], + population: 5426252, + flag: 'https://restcountries.eu/data/svk.svg', + currency: 'Euro' + }, + { + name: 'Slovenia', + capital: 'Ljubljana', + languages: ['Slovene'], + population: 2064188, + flag: 'https://restcountries.eu/data/svn.svg', + currency: 'Euro' + }, + { + name: 'Solomon Islands', + capital: 'Honiara', + languages: ['English'], + population: 642000, + flag: 'https://restcountries.eu/data/slb.svg', + currency: 'Solomon Islands dollar' + }, + { + name: 'Somalia', + capital: 'Mogadishu', + languages: ['Somali', 'Arabic'], + population: 11079000, + flag: 'https://restcountries.eu/data/som.svg', + currency: 'Somali shilling' + }, + { + name: 'South Africa', + capital: 'Pretoria', + languages: [ + 'Afrikaans', + 'English', + 'Southern Ndebele', + 'Southern Sotho', + 'Swati', + 'Tswana', + 'Tsonga', + 'Venda', + 'Xhosa', + 'Zulu' + ], + population: 55653654, + flag: 'https://restcountries.eu/data/zaf.svg', + currency: 'South African rand' + }, + { + name: 'South Georgia and the South Sandwich Islands', + capital: 'King Edward Point', + languages: ['English'], + population: 30, + flag: 'https://restcountries.eu/data/sgs.svg', + currency: 'British pound' + }, + { + name: 'Korea (Republic of)', + capital: 'Seoul', + languages: ['Korean'], + population: 50801405, + flag: 'https://restcountries.eu/data/kor.svg', + currency: 'South Korean won' + }, + { + name: 'South Sudan', + capital: 'Juba', + languages: ['English'], + population: 12131000, + flag: 'https://restcountries.eu/data/ssd.svg', + currency: 'South Sudanese pound' + }, + { + name: 'Spain', + capital: 'Madrid', + languages: ['Spanish'], + population: 46438422, + flag: 'https://restcountries.eu/data/esp.svg', + currency: 'Euro' + }, + { + name: 'Sri Lanka', + capital: 'Colombo', + languages: ['Sinhalese', 'Tamil'], + population: 20966000, + flag: 'https://restcountries.eu/data/lka.svg', + currency: 'Sri Lankan rupee' + }, + { + name: 'Sudan', + capital: 'Khartoum', + languages: ['Arabic', 'English'], + population: 39598700, + flag: 'https://restcountries.eu/data/sdn.svg', + currency: 'Sudanese pound' + }, + { + name: 'Suriname', + capital: 'Paramaribo', + languages: ['Dutch'], + population: 541638, + flag: 'https://restcountries.eu/data/sur.svg', + currency: 'Surinamese dollar' + }, + { + name: 'Svalbard and Jan Mayen', + capital: 'Longyearbyen', + languages: ['Norwegian'], + population: 2562, + flag: 'https://restcountries.eu/data/sjm.svg', + currency: 'Norwegian krone' + }, + { + name: 'Swaziland', + capital: 'Lobamba', + languages: ['English', 'Swati'], + population: 1132657, + flag: 'https://restcountries.eu/data/swz.svg', + currency: 'Swazi lilangeni' + }, + { + name: 'Sweden', + capital: 'Stockholm', + languages: ['Swedish'], + population: 9894888, + flag: 'https://restcountries.eu/data/swe.svg', + currency: 'Swedish krona' + }, + { + name: 'Switzerland', + capital: 'Bern', + languages: ['German', 'French', 'Italian'], + population: 8341600, + flag: 'https://restcountries.eu/data/che.svg', + currency: 'Swiss franc' + }, + { + name: 'Syrian Arab Republic', + capital: 'Damascus', + languages: ['Arabic'], + population: 18564000, + flag: 'https://restcountries.eu/data/syr.svg', + currency: 'Syrian pound' + }, + { + name: 'Taiwan', + capital: 'Taipei', + languages: ['Chinese'], + population: 23503349, + flag: 'https://restcountries.eu/data/twn.svg', + currency: 'New Taiwan dollar' + }, + { + name: 'Tajikistan', + capital: 'Dushanbe', + languages: ['Tajik', 'Russian'], + population: 8593600, + flag: 'https://restcountries.eu/data/tjk.svg', + currency: 'Tajikistani somoni' + }, + { + name: 'Tanzania, United Republic of', + capital: 'Dodoma', + languages: ['Swahili', 'English'], + population: 55155000, + flag: 'https://restcountries.eu/data/tza.svg', + currency: 'Tanzanian shilling' + }, + { + name: 'Thailand', + capital: 'Bangkok', + languages: ['Thai'], + population: 65327652, + flag: 'https://restcountries.eu/data/tha.svg', + currency: 'Thai baht' + }, + { + name: 'Timor-Leste', + capital: 'Dili', + languages: ['Portuguese'], + population: 1167242, + flag: 'https://restcountries.eu/data/tls.svg', + currency: 'United States dollar' + }, + { + name: 'Togo', + capital: 'Lomé', + languages: ['French'], + population: 7143000, + flag: 'https://restcountries.eu/data/tgo.svg', + currency: 'West African CFA franc' + }, + { + name: 'Tokelau', + capital: 'Fakaofo', + languages: ['English'], + population: 1411, + flag: 'https://restcountries.eu/data/tkl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Tonga', + capital: "Nuku'alofa", + languages: ['English', 'Tonga (Tonga Islands)'], + population: 103252, + flag: 'https://restcountries.eu/data/ton.svg', + currency: 'Tongan paʻanga' + }, + { + name: 'Trinidad and Tobago', + capital: 'Port of Spain', + languages: ['English'], + population: 1349667, + flag: 'https://restcountries.eu/data/tto.svg', + currency: 'Trinidad and Tobago dollar' + }, + { + name: 'Tunisia', + capital: 'Tunis', + languages: ['Arabic'], + population: 11154400, + flag: 'https://restcountries.eu/data/tun.svg', + currency: 'Tunisian dinar' + }, + { + name: 'Turkey', + capital: 'Ankara', + languages: ['Turkish'], + population: 78741053, + flag: 'https://restcountries.eu/data/tur.svg', + currency: 'Turkish lira' + }, + { + name: 'Turkmenistan', + capital: 'Ashgabat', + languages: ['Turkmen', 'Russian'], + population: 4751120, + flag: 'https://restcountries.eu/data/tkm.svg', + currency: 'Turkmenistan manat' + }, + { + name: 'Turks and Caicos Islands', + capital: 'Cockburn Town', + languages: ['English'], + population: 31458, + flag: 'https://restcountries.eu/data/tca.svg', + currency: 'United States dollar' + }, + { + name: 'Tuvalu', + capital: 'Funafuti', + languages: ['English'], + population: 10640, + flag: 'https://restcountries.eu/data/tuv.svg', + currency: 'Australian dollar' + }, + { + name: 'Uganda', + capital: 'Kampala', + languages: ['English', 'Swahili'], + population: 33860700, + flag: 'https://restcountries.eu/data/uga.svg', + currency: 'Ugandan shilling' + }, + { + name: 'Ukraine', + capital: 'Kiev', + languages: ['Ukrainian'], + population: 42692393, + flag: 'https://restcountries.eu/data/ukr.svg', + currency: 'Ukrainian hryvnia' + }, + { + name: 'United Arab Emirates', + capital: 'Abu Dhabi', + languages: ['Arabic'], + population: 9856000, + flag: 'https://restcountries.eu/data/are.svg', + currency: 'United Arab Emirates dirham' + }, + { + name: 'United Kingdom of Great Britain and Northern Ireland', + capital: 'London', + languages: ['English'], + population: 65110000, + flag: 'https://restcountries.eu/data/gbr.svg', + currency: 'British pound' + }, + { + name: 'United States of America', + capital: 'Washington, D.C.', + languages: ['English'], + population: 323947000, + flag: 'https://restcountries.eu/data/usa.svg', + currency: 'United States dollar' + }, + { + name: 'Uruguay', + capital: 'Montevideo', + languages: ['Spanish'], + population: 3480222, + flag: 'https://restcountries.eu/data/ury.svg', + currency: 'Uruguayan peso' + }, + { + name: 'Uzbekistan', + capital: 'Tashkent', + languages: ['Uzbek', 'Russian'], + population: 31576400, + flag: 'https://restcountries.eu/data/uzb.svg', + currency: "Uzbekistani so'm" + }, + { + name: 'Vanuatu', + capital: 'Port Vila', + languages: ['Bislama', 'English', 'French'], + population: 277500, + flag: 'https://restcountries.eu/data/vut.svg', + currency: 'Vanuatu vatu' + }, + { + name: 'Venezuela (Bolivarian Republic of)', + capital: 'Caracas', + languages: ['Spanish'], + population: 31028700, + flag: 'https://restcountries.eu/data/ven.svg', + currency: 'Venezuelan bolívar' + }, + { + name: 'Viet Nam', + capital: 'Hanoi', + languages: ['Vietnamese'], + population: 92700000, + flag: 'https://restcountries.eu/data/vnm.svg', + currency: 'Vietnamese đồng' + }, + { + name: 'Wallis and Futuna', + capital: 'Mata-Utu', + languages: ['French'], + population: 11750, + flag: 'https://restcountries.eu/data/wlf.svg', + currency: 'CFP franc' + }, + { + name: 'Western Sahara', + capital: 'El Aaiún', + languages: ['Spanish'], + population: 510713, + flag: 'https://restcountries.eu/data/esh.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Yemen', + capital: "Sana'a", + languages: ['Arabic'], + population: 27478000, + flag: 'https://restcountries.eu/data/yem.svg', + currency: 'Yemeni rial' + }, + { + name: 'Zambia', + capital: 'Lusaka', + languages: ['English'], + population: 15933883, + flag: 'https://restcountries.eu/data/zmb.svg', + currency: 'Zambian kwacha' + }, + { + name: 'Zimbabwe', + capital: 'Harare', + languages: ['English', 'Shona', 'Northern Ndebele'], + population: 14240168, + flag: 'https://restcountries.eu/data/zwe.svg', + currency: 'Botswana pula' + } +] diff --git a/12_Day/12_day_starter/index.html b/12_Day/12_day_starter/index.html new file mode 100644 index 0000000..6efcab4 --- /dev/null +++ b/12_Day/12_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:11 Day + + + +

30DaysOfJavaScript:11 Day

+

Destructuring and Spread

+ + + + + + + \ No newline at end of file diff --git a/12_Day/12_day_starter/scripts/main.js b/12_Day/12_day_starter/scripts/main.js new file mode 100644 index 0000000..c6045c8 --- /dev/null +++ b/12_Day/12_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file diff --git a/images/regex.png b/images/regex.png new file mode 100644 index 0000000000000000000000000000000000000000..c7116b4dd3b540bad20cb517f565d96997e5be55 GIT binary patch literal 85172 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%0Ah?ux6=+yTyW*{0^wmTps_l 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 VB;)05$}`BHw4}U5g_xoL{{b;oWM=>X literal 0 HcmV?d00001 From 04f90c896854f7b383340837f11ee958a2bc3494 Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Mon, 13 Jan 2020 01:32:33 +0200 Subject: [PATCH 02/21] day 12 --- 12_Day/12_day_regular_expressions.md | 101 ++++++++++++++++----------- 1 file changed, 62 insertions(+), 39 deletions(-) diff --git a/12_Day/12_day_regular_expressions.md b/12_Day/12_day_regular_expressions.md index ed644bb..e0f1cbe 100644 --- a/12_Day/12_day_regular_expressions.md +++ b/12_Day/12_day_regular_expressions.md @@ -426,40 +426,6 @@ console.log(result) // true ### Exercises: Level 1 1. Calculate the total annual income of the person from the following text. ‘He earns 4000 euro from salary per month, 10000 euro annual bonus, 5500 euro online courses per month.’ - -### Exercises: Level 2 - -1. What is the most frequent word in the following paragraph ? - -```js - paragraph = 'I love teaching. If you do not love teaching what else can you love. I love Python if you do not love something which can give you all the capabilities to develop an application what else can you love. -``` - -```sh - [(6, 'love'), - (5, 'you'), - (3, 'can'), - (2, 'what'), - (2, 'teaching'), - (2, 'not'), - (2, 'else'), - (2, 'do'), - (2, 'I'), - (1, 'which'), - (1, 'to'), - (1, 'the'), - (1, 'something'), - (1, 'if'), - (1, 'give'), - (1, 'develop'), - (1, 'capabilities'), - (1, 'application'), - (1, 'an'), - (1, 'all'), - (1, 'Python'), - (1, 'If')] -``` - 1. The position of some particles on the horizontal x-axis -12, -4, -3 and -1 in the negative direction, 0 at origin, 4 and 8 in the positive direction. Extract these numbers and find the distance between the two furthest particles. ```js @@ -477,24 +443,81 @@ distance = 12 is_valid_variable('firstname') # True ``` +### Exercises: Level 2 + +1. Write a function called *tenMostFrequentWords* which get the ten most frequent word from a string? + + ```js + paragraph = `I love teaching. If you do not love teaching what else can you love. I love Python if you do not love something which can give you all the capabilities to develop an application what else can you love.` + console.log(tenMostFrequentWords(paragraph)) + ``` + + ```sh + [(6, 'love'), + (5, 'you'), + (3, 'can'), + (2, 'what'), + (2, 'teaching'), + (2, 'not'), + (2, 'else'), + (2, 'do'), + (2, 'I'), + (1, 'which'), + (1, 'to'), + (1, 'the'), + (1, 'something'), + (1, 'if'), + (1, 'give'), + (1, 'develop'), + (1, 'capabilities'), + (1, 'application'), + (1, 'an'), + (1, 'all'), + (1, 'Python'), + (1, 'If') + ] + ``` + + ```js + console.log(tenMostFrequentWords(paragraph, 10)) + ``` + + ```sh + [ (6, 'love'), + (5, 'you'), + (3, 'can'), + (2, 'what'), + (2, 'teaching'), + (2, 'not'), + (2, 'else'), + (2, 'do'), + (2, 'I'), + (1, 'which') + ] + ``` + ### Exercises: Level 3 1. Writ a function which cleans text. Clean the following text. After cleaning, count three most frequent words in the string. ```js - sentence = '''%I $am@% a %tea@cher%, &and& I lo%#ve %tea@ching%;. There $is nothing; &as& mo@re rewarding as educa@ting &and& @emp%o@wering peo@ple. ;I found tea@ching m%o@re interesting tha@n any other %jo@bs. %Do@es thi%s mo@tivate yo@u to be a tea@cher!?''' + sentence = `%I $am@% a %tea@cher%, &and& I lo%#ve %tea@ching%;. There $is nothing; &as& mo@re rewarding as educa@ting &and& @emp%o@wering peo@ple. ;I found tea@ching m%o@re interesting tha@n any other %jo@bs. %Do@es thi%s mo@tivate yo@u to be a tea@cher!?` console.log(cleanText(sentence)) + ``` + ```sh I am a teacher and I love teaching There is nothing as more rewarding as educating and empowering people I found teaching more interesting than any other jobs Does this motivate you to be a teacher ``` 1. Write a function which find the most frequent words. After cleaning, count three most frequent words in the string. -```js - console.log(mostFrequentWords(cleaned_text)) - [(3, 'I'), (2, 'teaching'), (2, 'teacher')] -``` + ```js + console.log(mostFrequentWords(cleanedText)) + [(3, 'I'), (2, 'teaching'), (2, 'teacher')] + ``` + 🎉 CONGRATULATIONS ! 🎉 + [<< Day 11](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/11_Day/11_day_destructuring_and_spread.md) | [Day 13>>](#) From 72a0f3e7d1ed7a3f3964120aefa2be886d9533ed Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Tue, 14 Jan 2020 01:34:32 +0200 Subject: [PATCH 03/21] day 13 --- .gitignore | 1 - 12_Day/12_day_regular_expressions.md | 2 +- 13_Day/13_day_console_object_methods.md | 337 +++ 13_Day/13_day_starter/data/countries_data.js | 2013 ++++++++++++++++++ 13_Day/13_day_starter/index.html | 17 + 13_Day/13_day_starter/scripts/main.js | 2 + 6 files changed, 2370 insertions(+), 2 deletions(-) create mode 100644 13_Day/13_day_console_object_methods.md create mode 100644 13_Day/13_day_starter/data/countries_data.js create mode 100644 13_Day/13_day_starter/index.html create mode 100644 13_Day/13_day_starter/scripts/main.js diff --git a/.gitignore b/.gitignore index b87aa86..ccb869a 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,6 @@ day9.md day10.md 01_02_03_days_backup.md test.md -13_Day 14_Day 15_Day 16_Day diff --git a/12_Day/12_day_regular_expressions.md b/12_Day/12_day_regular_expressions.md index e0f1cbe..1bc243e 100644 --- a/12_Day/12_day_regular_expressions.md +++ b/12_Day/12_day_regular_expressions.md @@ -12,7 +12,7 @@ -[<< Day 11](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/11_Day/11_day_destructuring_and_spread.md) | [Day 13>>](#) +[<< Day 11](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/11_Day/11_day_destructuring_and_spread.md) | [Day 13>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) ![Thirty Days Of JavaScript](../images/banners/day_1_12.png) diff --git a/13_Day/13_day_console_object_methods.md b/13_Day/13_day_console_object_methods.md new file mode 100644 index 0000000..5622a82 --- /dev/null +++ b/13_Day/13_day_console_object_methods.md @@ -0,0 +1,337 @@ + + +[<< Day 11](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](#) + +![Thirty Days Of JavaScript](../images/banners/day_1_13.png) +- [Day 13](#day-13) + - [Console Object Methods](#console-object-methods) + - [console.log()](#consolelog) + - [console.warn()](#consolewarn) + - [console.error()](#consoleerror) + - [console.table()](#consoletable) + - [console.time()](#consoletime) + - [console.info()](#consoleinfo) + - [console.assert()](#consoleassert) + - [console.group()](#consolegroup) + - [console.count()](#consolecount) + - [console.clear()](#consoleclear) + - [Exercises](#exercises) + - [Exercises:Level 1](#exerciseslevel-1) + - [Exercises:Level 2](#exerciseslevel-2) + - [Exercises:Level 3](#exerciseslevel-3) + +# Day 13 + +## Console Object Methods + +In this section, we will cover about console and console object methods. Absolute beginners usually do not know which to use: console.log(), document.write() or document.getElementById. + +We use console object methods to show output on the browser console and we use document.write to show output on the browser document(view port). Both methods used only for testing and debugging purposes. The console method is the most popular testing and debugging tool on the browser. We use document.getElementById() when we like to interact with DOM try using JavaScript. We will cover DOM in another section. + +In addition to the famous, console.log() method, the console provides other more methods methods. + +### console.log() + +We use console.log() to show output on the browser console. We can substitute values and also we can style the logging out put using %c. + +- Showing output on browser console + +```js +console.log('30 Days of JavaScript') +``` + +```sh +30 Days of JavaScript +``` + +- Substitution + +```js +console.log('%d %s of JavaScript', 30, 'Days') +``` + +```sh +30 Days of JavaScript +``` + +- CSS + +We can style logging message using css. Copy the following code and paste it on browser console to see the result. + +```js +console.log('%c30 Days Of JavaScript','color:green') // log output is green +console.log('%c30 Days%c %cOf%c %cJavaScript%c','color:green','', 'color:red', '', 'color:yellow') // log output green red and yellow text +``` + +### console.warn() + +We use console.warn() to give warning on browser. For instance to inform or warn deprecation of version of a package or bad practices. Copy the following code and paste it on browser console to see warning messages. + +```js +console.warn('This is a warning') +console.warn('You are using React. Do not touch the DOM. Virtual DOM will take care of handling the DOM!') +console.warn('Warning is different from error') +``` + +### console.error() + +The console.error() methods shows an error messages. + +```js +console.error('This is an error message') +console.error('We all make mistakes') +``` + +### console.table() + +The console.table() method display data as a table on the console. Displays tabular data as a table. The console.table() takes one required argument data, which must be an array or an object, and one additional optional parameter columns. + +Let us first start with a simple array. The code below displays a table with two columns. An index column to display the index and value column to display the names + +```js +const names = ['Asabeneh', 'Brook', 'David', 'John'] +console.table(names) +``` + +Let us also check the result of an object. This creates table with two columns:an index column containing the keys and a value column contain the values of the object. + +```js +const user = { + name:'Asabeneh', + title:'Programmer', + country:'Finland', + city:'Helsinki', +age:250 +} +console.table(user) +``` + +Check the rest of the examples by copying and paste on the browser console. + +```js +const countries = [['Finland', 'Helsinki'], ['Sweden', 'Stockholm'], ['Norway', 'Oslo']] +console.table(countries) +``` + +```js +const users = [ +{ + name:'Asabeneh', + title:'Programmer', + country:'Finland', + city:'Helsinki', + age:250 +}, +{ + name:'Eyob', + title:'Teacher', + country:'Sweden', + city:'London', + age:25 +}, +{ + name:'Asab', + title:'Instructor', + country:'Norway', + city:'Oslo', + age:22 +}, +{ + name:'Matias', + title:'Developer', + country:'Denmark', + city:'Copenhagen', + age:28 +} +] +console.table(users) +``` + +### console.time() +Starts a timer you can use to track how long an operation takes. You give each timer a unique name, and may have up to 10,000 timers running on a given page. When you call console.timeEnd() with the same name, the browser will output the time, in milliseconds, that elapsed since the timer was started. + +```js +const countries = [['Finland', 'Helsinki'], ['Sweden', 'Stockholm'], ['Norway', 'Oslo']] + +console.time('Regular for loop') +for(let i = 0; i < countries.length; i++) { + console.log(countries[i][0], countries[i][1]) + +} +console.timeEnd('Regular for loop') + +console.time('for of loop') +for(const [name, city] of countries) { + console.log(name, city) +} +console.timeEnd('for of loop') + +console.time('forEach loop') +countries.forEach(([name, city])=> { + console.log(name, city) +}) +console.timeEnd('forEach loop') +``` + +```sh +Finland Helsinki +Sweden Stockholm +Norway Oslo +Regular for loop: 0.34716796875ms +Finland Helsinki +Sweden Stockholm +Norway Oslo +for of loop: 0.26806640625ms +Finland Helsinki +Sweden Stockholm +Norway Oslo +forEach loop: 0.358154296875ms +``` + +According the above output the regular for loop is slower than for of or forEach loop. + +### console.info() + +It display information message on browser console. + +```js +console.info('30 Days Of JavaScript challenge is trending on Github') +console.info('30 Days Of fullStack challenge might be released') +console.info('30 Days Of HTML and CSS challenge might be released') +``` + +### console.assert() + +The console.assert() methods writes an error message to the console if the assertion is false. If the assertion is true, nothing happens. The first parameter is an assertion expression. If this expression is false, an Assertion failed error message will be displayed. + +```js +console.assert(4 > 3, '4 is greater than 3') // no result +console.assert(3 > 4, '3 is not greater than 4') // Assertion failed: 3 is not greater than 4 + +for (let i = 0; i <= 10; i += 1) { + let errorMessage = `${i} is not even`; + console.log('the # is ' + i); + console.assert(i % 2 === 0, {number: i, errorMessage: errorMessage}) +} +``` + +### console.group() + +The console.group() can help to group different log groups. Copy the following code and paste it on browser console to the groups. + +```js +const names = ['Asabeneh', 'Brook', 'David', 'John'] +const countries = [['Finland', 'Helsinki'], ['Sweden', 'Stockholm'], ['Norway', 'Oslo']] +const user = { + name:'Asabeneh', + title:'Programmer', + country:'Finland', + city:'Helsinki', +age:250 +} +const users = [ +{ + name:'Asabeneh', + title:'Programmer', + country:'Finland', + city:'Helsinki', + age:250 +}, +{ + name:'Eyob', + title:'Teacher', + country:'Sweden', + city:'London', + age:25 +}, +{ + name:'Asab', + title:'Instructor', + country:'Norway', + city:'Oslo', + age:22 +}, +{ + name:'Matias', + title:'Developer', + country:'Denmark', + city:'Copenhagen', + age:28 +} +] + +console.group('Names') +console.log(names) +console.groupEnd() + +console.group('Countries') +console.log(countries) +console.groupEnd() + +console.group('Users') +console.log(user) +console.log(users) +console.groupEnd() + +``` + +### console.count() + +It prints the number of time this console.count() is called. It takes a string label parameter. It is very helpful to count the number of times a function is called. In the following example, the console.count() method will run three times + +```js +const func = () => { + console.count('Function has been called') +} +func() +func() +func() +``` + +```sh +Function has been called: 1 +Function has been called: 2 +Function has been called: 3 +``` + +### console.clear() + +The console.clear() cleans the browser console. + +🌕 Keep up the good work. Keep pushing, the sky is the limit! You have just completed day 13 challenges and you are 13 steps a head in to your way to greatness. Now do some exercises for your brain and for your muscle. + +## Exercises + +### Exercises:Level 1 + + 1. Display the countries array as a table + 2. Display the countries object as a table + 3. User console.group() to group logs + +### Exercises:Level 2 + +1. 10 > 2 * 10 use console.assert() +2. Write a warning message using console.warn() +3. Write an error message using console.error() + +### Exercises:Level 3 + +1. Check the speed difference among the following loops: while, for, for of, forEach + + +🎉 CONGRATULATIONS ! 🎉 + +[<< Day 11](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](#) \ No newline at end of file diff --git a/13_Day/13_day_starter/data/countries_data.js b/13_Day/13_day_starter/data/countries_data.js new file mode 100644 index 0000000..92acddd --- /dev/null +++ b/13_Day/13_day_starter/data/countries_data.js @@ -0,0 +1,2013 @@ +const countries = [ + { + name: 'Afghanistan', + capital: 'Kabul', + languages: ['Pashto', 'Uzbek', 'Turkmen'], + population: 27657145, + flag: 'https://restcountries.eu/data/afg.svg', + currency: 'Afghan afghani' + }, + { + name: 'Åland Islands', + capital: 'Mariehamn', + languages: ['Swedish'], + population: 28875, + flag: 'https://restcountries.eu/data/ala.svg', + currency: 'Euro' + }, + { + name: 'Albania', + capital: 'Tirana', + languages: ['Albanian'], + population: 2886026, + flag: 'https://restcountries.eu/data/alb.svg', + currency: 'Albanian lek' + }, + { + name: 'Algeria', + capital: 'Algiers', + languages: ['Arabic'], + population: 40400000, + flag: 'https://restcountries.eu/data/dza.svg', + currency: 'Algerian dinar' + }, + { + name: 'American Samoa', + capital: 'Pago Pago', + languages: ['English', 'Samoan'], + population: 57100, + flag: 'https://restcountries.eu/data/asm.svg', + currency: 'United State Dollar' + }, + { + name: 'Andorra', + capital: 'Andorra la Vella', + languages: ['Catalan'], + population: 78014, + flag: 'https://restcountries.eu/data/and.svg', + currency: 'Euro' + }, + { + name: 'Angola', + capital: 'Luanda', + languages: ['Portuguese'], + population: 25868000, + flag: 'https://restcountries.eu/data/ago.svg', + currency: 'Angolan kwanza' + }, + { + name: 'Anguilla', + capital: 'The Valley', + languages: ['English'], + population: 13452, + flag: 'https://restcountries.eu/data/aia.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Antarctica', + capital: '', + languages: ['English', 'Russian'], + population: 1000, + flag: 'https://restcountries.eu/data/ata.svg', + currency: 'Australian dollar' + }, + { + name: 'Antigua and Barbuda', + capital: "Saint John's", + languages: ['English'], + population: 86295, + flag: 'https://restcountries.eu/data/atg.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Argentina', + capital: 'Buenos Aires', + languages: ['Spanish', 'Guaraní'], + population: 43590400, + flag: 'https://restcountries.eu/data/arg.svg', + currency: 'Argentine peso' + }, + { + name: 'Armenia', + capital: 'Yerevan', + languages: ['Armenian', 'Russian'], + population: 2994400, + flag: 'https://restcountries.eu/data/arm.svg', + currency: 'Armenian dram' + }, + { + name: 'Aruba', + capital: 'Oranjestad', + languages: ['Dutch', '(Eastern) Punjabi'], + population: 107394, + flag: 'https://restcountries.eu/data/abw.svg', + currency: 'Aruban florin' + }, + { + name: 'Australia', + capital: 'Canberra', + languages: ['English'], + population: 24117360, + flag: 'https://restcountries.eu/data/aus.svg', + currency: 'Australian dollar' + }, + { + name: 'Austria', + capital: 'Vienna', + languages: ['German'], + population: 8725931, + flag: 'https://restcountries.eu/data/aut.svg', + currency: 'Euro' + }, + { + name: 'Azerbaijan', + capital: 'Baku', + languages: ['Azerbaijani'], + population: 9730500, + flag: 'https://restcountries.eu/data/aze.svg', + currency: 'Azerbaijani manat' + }, + { + name: 'Bahamas', + capital: 'Nassau', + languages: ['English'], + population: 378040, + flag: 'https://restcountries.eu/data/bhs.svg', + currency: 'Bahamian dollar' + }, + { + name: 'Bahrain', + capital: 'Manama', + languages: ['Arabic'], + population: 1404900, + flag: 'https://restcountries.eu/data/bhr.svg', + currency: 'Bahraini dinar' + }, + { + name: 'Bangladesh', + capital: 'Dhaka', + languages: ['Bengali'], + population: 161006790, + flag: 'https://restcountries.eu/data/bgd.svg', + currency: 'Bangladeshi taka' + }, + { + name: 'Barbados', + capital: 'Bridgetown', + languages: ['English'], + population: 285000, + flag: 'https://restcountries.eu/data/brb.svg', + currency: 'Barbadian dollar' + }, + { + name: 'Belarus', + capital: 'Minsk', + languages: ['Belarusian', 'Russian'], + population: 9498700, + flag: 'https://restcountries.eu/data/blr.svg', + currency: 'New Belarusian ruble' + }, + { + name: 'Belgium', + capital: 'Brussels', + languages: ['Dutch', 'French', 'German'], + population: 11319511, + flag: 'https://restcountries.eu/data/bel.svg', + currency: 'Euro' + }, + { + name: 'Belize', + capital: 'Belmopan', + languages: ['English', 'Spanish'], + population: 370300, + flag: 'https://restcountries.eu/data/blz.svg', + currency: 'Belize dollar' + }, + { + name: 'Benin', + capital: 'Porto-Novo', + languages: ['French'], + population: 10653654, + flag: 'https://restcountries.eu/data/ben.svg', + currency: 'West African CFA franc' + }, + { + name: 'Bermuda', + capital: 'Hamilton', + languages: ['English'], + population: 61954, + flag: 'https://restcountries.eu/data/bmu.svg', + currency: 'Bermudian dollar' + }, + { + name: 'Bhutan', + capital: 'Thimphu', + languages: ['Dzongkha'], + population: 775620, + flag: 'https://restcountries.eu/data/btn.svg', + currency: 'Bhutanese ngultrum' + }, + { + name: 'Bolivia (Plurinational State of)', + capital: 'Sucre', + languages: ['Spanish', 'Aymara', 'Quechua'], + population: 10985059, + flag: 'https://restcountries.eu/data/bol.svg', + currency: 'Bolivian boliviano' + }, + { + name: 'Bonaire, Sint Eustatius and Saba', + capital: 'Kralendijk', + languages: ['Dutch'], + population: 17408, + flag: 'https://restcountries.eu/data/bes.svg', + currency: 'United States dollar' + }, + { + name: 'Bosnia and Herzegovina', + capital: 'Sarajevo', + languages: ['Bosnian', 'Croatian', 'Serbian'], + population: 3531159, + flag: 'https://restcountries.eu/data/bih.svg', + currency: 'Bosnia and Herzegovina convertible mark' + }, + { + name: 'Botswana', + capital: 'Gaborone', + languages: ['English', 'Tswana'], + population: 2141206, + flag: 'https://restcountries.eu/data/bwa.svg', + currency: 'Botswana pula' + }, + { + name: 'Bouvet Island', + capital: '', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 0, + flag: 'https://restcountries.eu/data/bvt.svg', + currency: 'Norwegian krone' + }, + { + name: 'Brazil', + capital: 'Brasília', + languages: ['Portuguese'], + population: 206135893, + flag: 'https://restcountries.eu/data/bra.svg', + currency: 'Brazilian real' + }, + { + name: 'British Indian Ocean Territory', + capital: 'Diego Garcia', + languages: ['English'], + population: 3000, + flag: 'https://restcountries.eu/data/iot.svg', + currency: 'United States dollar' + }, + { + name: 'United States Minor Outlying Islands', + capital: '', + languages: ['English'], + population: 300, + flag: 'https://restcountries.eu/data/umi.svg', + currency: 'United States Dollar' + }, + { + name: 'Virgin Islands (British)', + capital: 'Road Town', + languages: ['English'], + population: 28514, + flag: 'https://restcountries.eu/data/vgb.svg', + currency: '[D]' + }, + { + name: 'Virgin Islands (U.S.)', + capital: 'Charlotte Amalie', + languages: ['English'], + population: 114743, + flag: 'https://restcountries.eu/data/vir.svg', + currency: 'United States dollar' + }, + { + name: 'Brunei Darussalam', + capital: 'Bandar Seri Begawan', + languages: ['Malay'], + population: 411900, + flag: 'https://restcountries.eu/data/brn.svg', + currency: 'Brunei dollar' + }, + { + name: 'Bulgaria', + capital: 'Sofia', + languages: ['Bulgarian'], + population: 7153784, + flag: 'https://restcountries.eu/data/bgr.svg', + currency: 'Bulgarian lev' + }, + { + name: 'Burkina Faso', + capital: 'Ouagadougou', + languages: ['French', 'Fula'], + population: 19034397, + flag: 'https://restcountries.eu/data/bfa.svg', + currency: 'West African CFA franc' + }, + { + name: 'Burundi', + capital: 'Bujumbura', + languages: ['French', 'Kirundi'], + population: 10114505, + flag: 'https://restcountries.eu/data/bdi.svg', + currency: 'Burundian franc' + }, + { + name: 'Cambodia', + capital: 'Phnom Penh', + languages: ['Khmer'], + population: 15626444, + flag: 'https://restcountries.eu/data/khm.svg', + currency: 'Cambodian riel' + }, + { + name: 'Cameroon', + capital: 'Yaoundé', + languages: ['English', 'French'], + population: 22709892, + flag: 'https://restcountries.eu/data/cmr.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Canada', + capital: 'Ottawa', + languages: ['English', 'French'], + population: 36155487, + flag: 'https://restcountries.eu/data/can.svg', + currency: 'Canadian dollar' + }, + { + name: 'Cabo Verde', + capital: 'Praia', + languages: ['Portuguese'], + population: 531239, + flag: 'https://restcountries.eu/data/cpv.svg', + currency: 'Cape Verdean escudo' + }, + { + name: 'Cayman Islands', + capital: 'George Town', + languages: ['English'], + population: 58238, + flag: 'https://restcountries.eu/data/cym.svg', + currency: 'Cayman Islands dollar' + }, + { + name: 'Central African Republic', + capital: 'Bangui', + languages: ['French', 'Sango'], + population: 4998000, + flag: 'https://restcountries.eu/data/caf.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chad', + capital: "N'Djamena", + languages: ['French', 'Arabic'], + population: 14497000, + flag: 'https://restcountries.eu/data/tcd.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chile', + capital: 'Santiago', + languages: ['Spanish'], + population: 18191900, + flag: 'https://restcountries.eu/data/chl.svg', + currency: 'Chilean peso' + }, + { + name: 'China', + capital: 'Beijing', + languages: ['Chinese'], + population: 1377422166, + flag: 'https://restcountries.eu/data/chn.svg', + currency: 'Chinese yuan' + }, + { + name: 'Christmas Island', + capital: 'Flying Fish Cove', + languages: ['English'], + population: 2072, + flag: 'https://restcountries.eu/data/cxr.svg', + currency: 'Australian dollar' + }, + { + name: 'Cocos (Keeling) Islands', + capital: 'West Island', + languages: ['English'], + population: 550, + flag: 'https://restcountries.eu/data/cck.svg', + currency: 'Australian dollar' + }, + { + name: 'Colombia', + capital: 'Bogotá', + languages: ['Spanish'], + population: 48759958, + flag: 'https://restcountries.eu/data/col.svg', + currency: 'Colombian peso' + }, + { + name: 'Comoros', + capital: 'Moroni', + languages: ['Arabic', 'French'], + population: 806153, + flag: 'https://restcountries.eu/data/com.svg', + currency: 'Comorian franc' + }, + { + name: 'Congo', + capital: 'Brazzaville', + languages: ['French', 'Lingala'], + population: 4741000, + flag: 'https://restcountries.eu/data/cog.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Congo (Democratic Republic of the)', + capital: 'Kinshasa', + languages: ['French', 'Lingala', 'Kongo', 'Swahili', 'Luba-Katanga'], + population: 85026000, + flag: 'https://restcountries.eu/data/cod.svg', + currency: 'Congolese franc' + }, + { + name: 'Cook Islands', + capital: 'Avarua', + languages: ['English'], + population: 18100, + flag: 'https://restcountries.eu/data/cok.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Costa Rica', + capital: 'San José', + languages: ['Spanish'], + population: 4890379, + flag: 'https://restcountries.eu/data/cri.svg', + currency: 'Costa Rican colón' + }, + { + name: 'Croatia', + capital: 'Zagreb', + languages: ['Croatian'], + population: 4190669, + flag: 'https://restcountries.eu/data/hrv.svg', + currency: 'Croatian kuna' + }, + { + name: 'Cuba', + capital: 'Havana', + languages: ['Spanish'], + population: 11239004, + flag: 'https://restcountries.eu/data/cub.svg', + currency: 'Cuban convertible peso' + }, + { + name: 'Curaçao', + capital: 'Willemstad', + languages: ['Dutch', '(Eastern) Punjabi', 'English'], + population: 154843, + flag: 'https://restcountries.eu/data/cuw.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Cyprus', + capital: 'Nicosia', + languages: ['Greek (modern)', 'Turkish', 'Armenian'], + population: 847000, + flag: 'https://restcountries.eu/data/cyp.svg', + currency: 'Euro' + }, + { + name: 'Czech Republic', + capital: 'Prague', + languages: ['Czech', 'Slovak'], + population: 10558524, + flag: 'https://restcountries.eu/data/cze.svg', + currency: 'Czech koruna' + }, + { + name: 'Denmark', + capital: 'Copenhagen', + languages: ['Danish'], + population: 5717014, + flag: 'https://restcountries.eu/data/dnk.svg', + currency: 'Danish krone' + }, + { + name: 'Djibouti', + capital: 'Djibouti', + languages: ['French', 'Arabic'], + population: 900000, + flag: 'https://restcountries.eu/data/dji.svg', + currency: 'Djiboutian franc' + }, + { + name: 'Dominica', + capital: 'Roseau', + languages: ['English'], + population: 71293, + flag: 'https://restcountries.eu/data/dma.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Dominican Republic', + capital: 'Santo Domingo', + languages: ['Spanish'], + population: 10075045, + flag: 'https://restcountries.eu/data/dom.svg', + currency: 'Dominican peso' + }, + { + name: 'Ecuador', + capital: 'Quito', + languages: ['Spanish'], + population: 16545799, + flag: 'https://restcountries.eu/data/ecu.svg', + currency: 'United States dollar' + }, + { + name: 'Egypt', + capital: 'Cairo', + languages: ['Arabic'], + population: 91290000, + flag: 'https://restcountries.eu/data/egy.svg', + currency: 'Egyptian pound' + }, + { + name: 'El Salvador', + capital: 'San Salvador', + languages: ['Spanish'], + population: 6520675, + flag: 'https://restcountries.eu/data/slv.svg', + currency: 'United States dollar' + }, + { + name: 'Equatorial Guinea', + capital: 'Malabo', + languages: ['Spanish', 'French'], + population: 1222442, + flag: 'https://restcountries.eu/data/gnq.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Eritrea', + capital: 'Asmara', + languages: ['Tigrinya', 'Arabic', 'English'], + population: 5352000, + flag: 'https://restcountries.eu/data/eri.svg', + currency: 'Eritrean nakfa' + }, + { + name: 'Estonia', + capital: 'Tallinn', + languages: ['Estonian'], + population: 1315944, + flag: 'https://restcountries.eu/data/est.svg', + currency: 'Euro' + }, + { + name: 'Ethiopia', + capital: 'Addis Ababa', + languages: ['Amharic'], + population: 92206005, + flag: 'https://restcountries.eu/data/eth.svg', + currency: 'Ethiopian birr' + }, + { + name: 'Falkland Islands (Malvinas)', + capital: 'Stanley', + languages: ['English'], + population: 2563, + flag: 'https://restcountries.eu/data/flk.svg', + currency: 'Falkland Islands pound' + }, + { + name: 'Faroe Islands', + capital: 'Tórshavn', + languages: ['Faroese'], + population: 49376, + flag: 'https://restcountries.eu/data/fro.svg', + currency: 'Danish krone' + }, + { + name: 'Fiji', + capital: 'Suva', + languages: ['English', 'Fijian', 'Hindi', 'Urdu'], + population: 867000, + flag: 'https://restcountries.eu/data/fji.svg', + currency: 'Fijian dollar' + }, + { + name: 'Finland', + capital: 'Helsinki', + languages: ['Finnish', 'Swedish'], + population: 5491817, + flag: 'https://restcountries.eu/data/fin.svg', + currency: 'Euro' + }, + { + name: 'France', + capital: 'Paris', + languages: ['French'], + population: 66710000, + flag: 'https://restcountries.eu/data/fra.svg', + currency: 'Euro' + }, + { + name: 'French Guiana', + capital: 'Cayenne', + languages: ['French'], + population: 254541, + flag: 'https://restcountries.eu/data/guf.svg', + currency: 'Euro' + }, + { + name: 'French Polynesia', + capital: 'Papeetē', + languages: ['French'], + population: 271800, + flag: 'https://restcountries.eu/data/pyf.svg', + currency: 'CFP franc' + }, + { + name: 'French Southern Territories', + capital: 'Port-aux-Français', + languages: ['French'], + population: 140, + flag: 'https://restcountries.eu/data/atf.svg', + currency: 'Euro' + }, + { + name: 'Gabon', + capital: 'Libreville', + languages: ['French'], + population: 1802278, + flag: 'https://restcountries.eu/data/gab.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Gambia', + capital: 'Banjul', + languages: ['English'], + population: 1882450, + flag: 'https://restcountries.eu/data/gmb.svg', + currency: 'Gambian dalasi' + }, + { + name: 'Georgia', + capital: 'Tbilisi', + languages: ['Georgian'], + population: 3720400, + flag: 'https://restcountries.eu/data/geo.svg', + currency: 'Georgian Lari' + }, + { + name: 'Germany', + capital: 'Berlin', + languages: ['German'], + population: 81770900, + flag: 'https://restcountries.eu/data/deu.svg', + currency: 'Euro' + }, + { + name: 'Ghana', + capital: 'Accra', + languages: ['English'], + population: 27670174, + flag: 'https://restcountries.eu/data/gha.svg', + currency: 'Ghanaian cedi' + }, + { + name: 'Gibraltar', + capital: 'Gibraltar', + languages: ['English'], + population: 33140, + flag: 'https://restcountries.eu/data/gib.svg', + currency: 'Gibraltar pound' + }, + { + name: 'Greece', + capital: 'Athens', + languages: ['Greek (modern)'], + population: 10858018, + flag: 'https://restcountries.eu/data/grc.svg', + currency: 'Euro' + }, + { + name: 'Greenland', + capital: 'Nuuk', + languages: ['Kalaallisut'], + population: 55847, + flag: 'https://restcountries.eu/data/grl.svg', + currency: 'Danish krone' + }, + { + name: 'Grenada', + capital: "St. George's", + languages: ['English'], + population: 103328, + flag: 'https://restcountries.eu/data/grd.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Guadeloupe', + capital: 'Basse-Terre', + languages: ['French'], + population: 400132, + flag: 'https://restcountries.eu/data/glp.svg', + currency: 'Euro' + }, + { + name: 'Guam', + capital: 'Hagåtña', + languages: ['English', 'Chamorro', 'Spanish'], + population: 184200, + flag: 'https://restcountries.eu/data/gum.svg', + currency: 'United States dollar' + }, + { + name: 'Guatemala', + capital: 'Guatemala City', + languages: ['Spanish'], + population: 16176133, + flag: 'https://restcountries.eu/data/gtm.svg', + currency: 'Guatemalan quetzal' + }, + { + name: 'Guernsey', + capital: 'St. Peter Port', + languages: ['English', 'French'], + population: 62999, + flag: 'https://restcountries.eu/data/ggy.svg', + currency: 'British pound' + }, + { + name: 'Guinea', + capital: 'Conakry', + languages: ['French', 'Fula'], + population: 12947000, + flag: 'https://restcountries.eu/data/gin.svg', + currency: 'Guinean franc' + }, + { + name: 'Guinea-Bissau', + capital: 'Bissau', + languages: ['Portuguese'], + population: 1547777, + flag: 'https://restcountries.eu/data/gnb.svg', + currency: 'West African CFA franc' + }, + { + name: 'Guyana', + capital: 'Georgetown', + languages: ['English'], + population: 746900, + flag: 'https://restcountries.eu/data/guy.svg', + currency: 'Guyanese dollar' + }, + { + name: 'Haiti', + capital: 'Port-au-Prince', + languages: ['French', 'Haitian'], + population: 11078033, + flag: 'https://restcountries.eu/data/hti.svg', + currency: 'Haitian gourde' + }, + { + name: 'Heard Island and McDonald Islands', + capital: '', + languages: ['English'], + population: 0, + flag: 'https://restcountries.eu/data/hmd.svg', + currency: 'Australian dollar' + }, + { + name: 'Holy See', + capital: 'Rome', + languages: ['Latin', 'Italian', 'French', 'German'], + population: 451, + flag: 'https://restcountries.eu/data/vat.svg', + currency: 'Euro' + }, + { + name: 'Honduras', + capital: 'Tegucigalpa', + languages: ['Spanish'], + population: 8576532, + flag: 'https://restcountries.eu/data/hnd.svg', + currency: 'Honduran lempira' + }, + { + name: 'Hong Kong', + capital: 'City of Victoria', + languages: ['English', 'Chinese'], + population: 7324300, + flag: 'https://restcountries.eu/data/hkg.svg', + currency: 'Hong Kong dollar' + }, + { + name: 'Hungary', + capital: 'Budapest', + languages: ['Hungarian'], + population: 9823000, + flag: 'https://restcountries.eu/data/hun.svg', + currency: 'Hungarian forint' + }, + { + name: 'Iceland', + capital: 'Reykjavík', + languages: ['Icelandic'], + population: 334300, + flag: 'https://restcountries.eu/data/isl.svg', + currency: 'Icelandic króna' + }, + { + name: 'India', + capital: 'New Delhi', + languages: ['Hindi', 'English'], + population: 1295210000, + flag: 'https://restcountries.eu/data/ind.svg', + currency: 'Indian rupee' + }, + { + name: 'Indonesia', + capital: 'Jakarta', + languages: ['Indonesian'], + population: 258705000, + flag: 'https://restcountries.eu/data/idn.svg', + currency: 'Indonesian rupiah' + }, + { + name: "Côte d'Ivoire", + capital: 'Yamoussoukro', + languages: ['French'], + population: 22671331, + flag: 'https://restcountries.eu/data/civ.svg', + currency: 'West African CFA franc' + }, + { + name: 'Iran (Islamic Republic of)', + capital: 'Tehran', + languages: ['Persian (Farsi)'], + population: 79369900, + flag: 'https://restcountries.eu/data/irn.svg', + currency: 'Iranian rial' + }, + { + name: 'Iraq', + capital: 'Baghdad', + languages: ['Arabic', 'Kurdish'], + population: 37883543, + flag: 'https://restcountries.eu/data/irq.svg', + currency: 'Iraqi dinar' + }, + { + name: 'Ireland', + capital: 'Dublin', + languages: ['Irish', 'English'], + population: 6378000, + flag: 'https://restcountries.eu/data/irl.svg', + currency: 'Euro' + }, + { + name: 'Isle of Man', + capital: 'Douglas', + languages: ['English', 'Manx'], + population: 84497, + flag: 'https://restcountries.eu/data/imn.svg', + currency: 'British pound' + }, + { + name: 'Israel', + capital: 'Jerusalem', + languages: ['Hebrew (modern)', 'Arabic'], + population: 8527400, + flag: 'https://restcountries.eu/data/isr.svg', + currency: 'Israeli new shekel' + }, + { + name: 'Italy', + capital: 'Rome', + languages: ['Italian'], + population: 60665551, + flag: 'https://restcountries.eu/data/ita.svg', + currency: 'Euro' + }, + { + name: 'Jamaica', + capital: 'Kingston', + languages: ['English'], + population: 2723246, + flag: 'https://restcountries.eu/data/jam.svg', + currency: 'Jamaican dollar' + }, + { + name: 'Japan', + capital: 'Tokyo', + languages: ['Japanese'], + population: 126960000, + flag: 'https://restcountries.eu/data/jpn.svg', + currency: 'Japanese yen' + }, + { + name: 'Jersey', + capital: 'Saint Helier', + languages: ['English', 'French'], + population: 100800, + flag: 'https://restcountries.eu/data/jey.svg', + currency: 'British pound' + }, + { + name: 'Jordan', + capital: 'Amman', + languages: ['Arabic'], + population: 9531712, + flag: 'https://restcountries.eu/data/jor.svg', + currency: 'Jordanian dinar' + }, + { + name: 'Kazakhstan', + capital: 'Astana', + languages: ['Kazakh', 'Russian'], + population: 17753200, + flag: 'https://restcountries.eu/data/kaz.svg', + currency: 'Kazakhstani tenge' + }, + { + name: 'Kenya', + capital: 'Nairobi', + languages: ['English', 'Swahili'], + population: 47251000, + flag: 'https://restcountries.eu/data/ken.svg', + currency: 'Kenyan shilling' + }, + { + name: 'Kiribati', + capital: 'South Tarawa', + languages: ['English'], + population: 113400, + flag: 'https://restcountries.eu/data/kir.svg', + currency: 'Australian dollar' + }, + { + name: 'Kuwait', + capital: 'Kuwait City', + languages: ['Arabic'], + population: 4183658, + flag: 'https://restcountries.eu/data/kwt.svg', + currency: 'Kuwaiti dinar' + }, + { + name: 'Kyrgyzstan', + capital: 'Bishkek', + languages: ['Kyrgyz', 'Russian'], + population: 6047800, + flag: 'https://restcountries.eu/data/kgz.svg', + currency: 'Kyrgyzstani som' + }, + { + name: "Lao People's Democratic Republic", + capital: 'Vientiane', + languages: ['Lao'], + population: 6492400, + flag: 'https://restcountries.eu/data/lao.svg', + currency: 'Lao kip' + }, + { + name: 'Latvia', + capital: 'Riga', + languages: ['Latvian'], + population: 1961600, + flag: 'https://restcountries.eu/data/lva.svg', + currency: 'Euro' + }, + { + name: 'Lebanon', + capital: 'Beirut', + languages: ['Arabic', 'French'], + population: 5988000, + flag: 'https://restcountries.eu/data/lbn.svg', + currency: 'Lebanese pound' + }, + { + name: 'Lesotho', + capital: 'Maseru', + languages: ['English', 'Southern Sotho'], + population: 1894194, + flag: 'https://restcountries.eu/data/lso.svg', + currency: 'Lesotho loti' + }, + { + name: 'Liberia', + capital: 'Monrovia', + languages: ['English'], + population: 4615000, + flag: 'https://restcountries.eu/data/lbr.svg', + currency: 'Liberian dollar' + }, + { + name: 'Libya', + capital: 'Tripoli', + languages: ['Arabic'], + population: 6385000, + flag: 'https://restcountries.eu/data/lby.svg', + currency: 'Libyan dinar' + }, + { + name: 'Liechtenstein', + capital: 'Vaduz', + languages: ['German'], + population: 37623, + flag: 'https://restcountries.eu/data/lie.svg', + currency: 'Swiss franc' + }, + { + name: 'Lithuania', + capital: 'Vilnius', + languages: ['Lithuanian'], + population: 2872294, + flag: 'https://restcountries.eu/data/ltu.svg', + currency: 'Euro' + }, + { + name: 'Luxembourg', + capital: 'Luxembourg', + languages: ['French', 'German', 'Luxembourgish'], + population: 576200, + flag: 'https://restcountries.eu/data/lux.svg', + currency: 'Euro' + }, + { + name: 'Macao', + capital: '', + languages: ['Chinese', 'Portuguese'], + population: 649100, + flag: 'https://restcountries.eu/data/mac.svg', + currency: 'Macanese pataca' + }, + { + name: 'Macedonia (the former Yugoslav Republic of)', + capital: 'Skopje', + languages: ['Macedonian'], + population: 2058539, + flag: 'https://restcountries.eu/data/mkd.svg', + currency: 'Macedonian denar' + }, + { + name: 'Madagascar', + capital: 'Antananarivo', + languages: ['French', 'Malagasy'], + population: 22434363, + flag: 'https://restcountries.eu/data/mdg.svg', + currency: 'Malagasy ariary' + }, + { + name: 'Malawi', + capital: 'Lilongwe', + languages: ['English', 'Chichewa'], + population: 16832910, + flag: 'https://restcountries.eu/data/mwi.svg', + currency: 'Malawian kwacha' + }, + { + name: 'Malaysia', + capital: 'Kuala Lumpur', + languages: ['Malaysian'], + population: 31405416, + flag: 'https://restcountries.eu/data/mys.svg', + currency: 'Malaysian ringgit' + }, + { + name: 'Maldives', + capital: 'Malé', + languages: ['Divehi'], + population: 344023, + flag: 'https://restcountries.eu/data/mdv.svg', + currency: 'Maldivian rufiyaa' + }, + { + name: 'Mali', + capital: 'Bamako', + languages: ['French'], + population: 18135000, + flag: 'https://restcountries.eu/data/mli.svg', + currency: 'West African CFA franc' + }, + { + name: 'Malta', + capital: 'Valletta', + languages: ['Maltese', 'English'], + population: 425384, + flag: 'https://restcountries.eu/data/mlt.svg', + currency: 'Euro' + }, + { + name: 'Marshall Islands', + capital: 'Majuro', + languages: ['English', 'Marshallese'], + population: 54880, + flag: 'https://restcountries.eu/data/mhl.svg', + currency: 'United States dollar' + }, + { + name: 'Martinique', + capital: 'Fort-de-France', + languages: ['French'], + population: 378243, + flag: 'https://restcountries.eu/data/mtq.svg', + currency: 'Euro' + }, + { + name: 'Mauritania', + capital: 'Nouakchott', + languages: ['Arabic'], + population: 3718678, + flag: 'https://restcountries.eu/data/mrt.svg', + currency: 'Mauritanian ouguiya' + }, + { + name: 'Mauritius', + capital: 'Port Louis', + languages: ['English'], + population: 1262879, + flag: 'https://restcountries.eu/data/mus.svg', + currency: 'Mauritian rupee' + }, + { + name: 'Mayotte', + capital: 'Mamoudzou', + languages: ['French'], + population: 226915, + flag: 'https://restcountries.eu/data/myt.svg', + currency: 'Euro' + }, + { + name: 'Mexico', + capital: 'Mexico City', + languages: ['Spanish'], + population: 122273473, + flag: 'https://restcountries.eu/data/mex.svg', + currency: 'Mexican peso' + }, + { + name: 'Micronesia (Federated States of)', + capital: 'Palikir', + languages: ['English'], + population: 102800, + flag: 'https://restcountries.eu/data/fsm.svg', + currency: '[D]' + }, + { + name: 'Moldova (Republic of)', + capital: 'Chișinău', + languages: ['Romanian'], + population: 3553100, + flag: 'https://restcountries.eu/data/mda.svg', + currency: 'Moldovan leu' + }, + { + name: 'Monaco', + capital: 'Monaco', + languages: ['French'], + population: 38400, + flag: 'https://restcountries.eu/data/mco.svg', + currency: 'Euro' + }, + { + name: 'Mongolia', + capital: 'Ulan Bator', + languages: ['Mongolian'], + population: 3093100, + flag: 'https://restcountries.eu/data/mng.svg', + currency: 'Mongolian tögrög' + }, + { + name: 'Montenegro', + capital: 'Podgorica', + languages: ['Serbian', 'Bosnian', 'Albanian', 'Croatian'], + population: 621810, + flag: 'https://restcountries.eu/data/mne.svg', + currency: 'Euro' + }, + { + name: 'Montserrat', + capital: 'Plymouth', + languages: ['English'], + population: 4922, + flag: 'https://restcountries.eu/data/msr.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Morocco', + capital: 'Rabat', + languages: ['Arabic'], + population: 33337529, + flag: 'https://restcountries.eu/data/mar.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Mozambique', + capital: 'Maputo', + languages: ['Portuguese'], + population: 26423700, + flag: 'https://restcountries.eu/data/moz.svg', + currency: 'Mozambican metical' + }, + { + name: 'Myanmar', + capital: 'Naypyidaw', + languages: ['Burmese'], + population: 51419420, + flag: 'https://restcountries.eu/data/mmr.svg', + currency: 'Burmese kyat' + }, + { + name: 'Namibia', + capital: 'Windhoek', + languages: ['English', 'Afrikaans'], + population: 2324388, + flag: 'https://restcountries.eu/data/nam.svg', + currency: 'Namibian dollar' + }, + { + name: 'Nauru', + capital: 'Yaren', + languages: ['English', 'Nauruan'], + population: 10084, + flag: 'https://restcountries.eu/data/nru.svg', + currency: 'Australian dollar' + }, + { + name: 'Nepal', + capital: 'Kathmandu', + languages: ['Nepali'], + population: 28431500, + flag: 'https://restcountries.eu/data/npl.svg', + currency: 'Nepalese rupee' + }, + { + name: 'Netherlands', + capital: 'Amsterdam', + languages: ['Dutch'], + population: 17019800, + flag: 'https://restcountries.eu/data/nld.svg', + currency: 'Euro' + }, + { + name: 'New Caledonia', + capital: 'Nouméa', + languages: ['French'], + population: 268767, + flag: 'https://restcountries.eu/data/ncl.svg', + currency: 'CFP franc' + }, + { + name: 'New Zealand', + capital: 'Wellington', + languages: ['English', 'Māori'], + population: 4697854, + flag: 'https://restcountries.eu/data/nzl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Nicaragua', + capital: 'Managua', + languages: ['Spanish'], + population: 6262703, + flag: 'https://restcountries.eu/data/nic.svg', + currency: 'Nicaraguan córdoba' + }, + { + name: 'Niger', + capital: 'Niamey', + languages: ['French'], + population: 20715000, + flag: 'https://restcountries.eu/data/ner.svg', + currency: 'West African CFA franc' + }, + { + name: 'Nigeria', + capital: 'Abuja', + languages: ['English'], + population: 186988000, + flag: 'https://restcountries.eu/data/nga.svg', + currency: 'Nigerian naira' + }, + { + name: 'Niue', + capital: 'Alofi', + languages: ['English'], + population: 1470, + flag: 'https://restcountries.eu/data/niu.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Norfolk Island', + capital: 'Kingston', + languages: ['English'], + population: 2302, + flag: 'https://restcountries.eu/data/nfk.svg', + currency: 'Australian dollar' + }, + { + name: "Korea (Democratic People's Republic of)", + capital: 'Pyongyang', + languages: ['Korean'], + population: 25281000, + flag: 'https://restcountries.eu/data/prk.svg', + currency: 'North Korean won' + }, + { + name: 'Northern Mariana Islands', + capital: 'Saipan', + languages: ['English', 'Chamorro'], + population: 56940, + flag: 'https://restcountries.eu/data/mnp.svg', + currency: 'United States dollar' + }, + { + name: 'Norway', + capital: 'Oslo', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 5223256, + flag: 'https://restcountries.eu/data/nor.svg', + currency: 'Norwegian krone' + }, + { + name: 'Oman', + capital: 'Muscat', + languages: ['Arabic'], + population: 4420133, + flag: 'https://restcountries.eu/data/omn.svg', + currency: 'Omani rial' + }, + { + name: 'Pakistan', + capital: 'Islamabad', + languages: ['English', 'Urdu'], + population: 194125062, + flag: 'https://restcountries.eu/data/pak.svg', + currency: 'Pakistani rupee' + }, + { + name: 'Palau', + capital: 'Ngerulmud', + languages: ['English'], + population: 17950, + flag: 'https://restcountries.eu/data/plw.svg', + currency: '[E]' + }, + { + name: 'Palestine, State of', + capital: 'Ramallah', + languages: ['Arabic'], + population: 4682467, + flag: 'https://restcountries.eu/data/pse.svg', + currency: 'Israeli new sheqel' + }, + { + name: 'Panama', + capital: 'Panama City', + languages: ['Spanish'], + population: 3814672, + flag: 'https://restcountries.eu/data/pan.svg', + currency: 'Panamanian balboa' + }, + { + name: 'Papua New Guinea', + capital: 'Port Moresby', + languages: ['English'], + population: 8083700, + flag: 'https://restcountries.eu/data/png.svg', + currency: 'Papua New Guinean kina' + }, + { + name: 'Paraguay', + capital: 'Asunción', + languages: ['Spanish', 'Guaraní'], + population: 6854536, + flag: 'https://restcountries.eu/data/pry.svg', + currency: 'Paraguayan guaraní' + }, + { + name: 'Peru', + capital: 'Lima', + languages: ['Spanish'], + population: 31488700, + flag: 'https://restcountries.eu/data/per.svg', + currency: 'Peruvian sol' + }, + { + name: 'Philippines', + capital: 'Manila', + languages: ['English'], + population: 103279800, + flag: 'https://restcountries.eu/data/phl.svg', + currency: 'Philippine peso' + }, + { + name: 'Pitcairn', + capital: 'Adamstown', + languages: ['English'], + population: 56, + flag: 'https://restcountries.eu/data/pcn.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Poland', + capital: 'Warsaw', + languages: ['Polish'], + population: 38437239, + flag: 'https://restcountries.eu/data/pol.svg', + currency: 'Polish złoty' + }, + { + name: 'Portugal', + capital: 'Lisbon', + languages: ['Portuguese'], + population: 10374822, + flag: 'https://restcountries.eu/data/prt.svg', + currency: 'Euro' + }, + { + name: 'Puerto Rico', + capital: 'San Juan', + languages: ['Spanish', 'English'], + population: 3474182, + flag: 'https://restcountries.eu/data/pri.svg', + currency: 'United States dollar' + }, + { + name: 'Qatar', + capital: 'Doha', + languages: ['Arabic'], + population: 2587564, + flag: 'https://restcountries.eu/data/qat.svg', + currency: 'Qatari riyal' + }, + { + name: 'Republic of Kosovo', + capital: 'Pristina', + languages: ['Albanian', 'Serbian'], + population: 1733842, + flag: 'https://restcountries.eu/data/kos.svg', + currency: 'Euro' + }, + { + name: 'Réunion', + capital: 'Saint-Denis', + languages: ['French'], + population: 840974, + flag: 'https://restcountries.eu/data/reu.svg', + currency: 'Euro' + }, + { + name: 'Romania', + capital: 'Bucharest', + languages: ['Romanian'], + population: 19861408, + flag: 'https://restcountries.eu/data/rou.svg', + currency: 'Romanian leu' + }, + { + name: 'Russian Federation', + capital: 'Moscow', + languages: ['Russian'], + population: 146599183, + flag: 'https://restcountries.eu/data/rus.svg', + currency: 'Russian ruble' + }, + { + name: 'Rwanda', + capital: 'Kigali', + languages: ['Kinyarwanda', 'English', 'French'], + population: 11553188, + flag: 'https://restcountries.eu/data/rwa.svg', + currency: 'Rwandan franc' + }, + { + name: 'Saint Barthélemy', + capital: 'Gustavia', + languages: ['French'], + population: 9417, + flag: 'https://restcountries.eu/data/blm.svg', + currency: 'Euro' + }, + { + name: 'Saint Helena, Ascension and Tristan da Cunha', + capital: 'Jamestown', + languages: ['English'], + population: 4255, + flag: 'https://restcountries.eu/data/shn.svg', + currency: 'Saint Helena pound' + }, + { + name: 'Saint Kitts and Nevis', + capital: 'Basseterre', + languages: ['English'], + population: 46204, + flag: 'https://restcountries.eu/data/kna.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Lucia', + capital: 'Castries', + languages: ['English'], + population: 186000, + flag: 'https://restcountries.eu/data/lca.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Martin (French part)', + capital: 'Marigot', + languages: ['English', 'French', 'Dutch'], + population: 36979, + flag: 'https://restcountries.eu/data/maf.svg', + currency: 'Euro' + }, + { + name: 'Saint Pierre and Miquelon', + capital: 'Saint-Pierre', + languages: ['French'], + population: 6069, + flag: 'https://restcountries.eu/data/spm.svg', + currency: 'Euro' + }, + { + name: 'Saint Vincent and the Grenadines', + capital: 'Kingstown', + languages: ['English'], + population: 109991, + flag: 'https://restcountries.eu/data/vct.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Samoa', + capital: 'Apia', + languages: ['Samoan', 'English'], + population: 194899, + flag: 'https://restcountries.eu/data/wsm.svg', + currency: 'Samoan tālā' + }, + { + name: 'San Marino', + capital: 'City of San Marino', + languages: ['Italian'], + population: 33005, + flag: 'https://restcountries.eu/data/smr.svg', + currency: 'Euro' + }, + { + name: 'Sao Tome and Principe', + capital: 'São Tomé', + languages: ['Portuguese'], + population: 187356, + flag: 'https://restcountries.eu/data/stp.svg', + currency: 'São Tomé and Príncipe dobra' + }, + { + name: 'Saudi Arabia', + capital: 'Riyadh', + languages: ['Arabic'], + population: 32248200, + flag: 'https://restcountries.eu/data/sau.svg', + currency: 'Saudi riyal' + }, + { + name: 'Senegal', + capital: 'Dakar', + languages: ['French'], + population: 14799859, + flag: 'https://restcountries.eu/data/sen.svg', + currency: 'West African CFA franc' + }, + { + name: 'Serbia', + capital: 'Belgrade', + languages: ['Serbian'], + population: 7076372, + flag: 'https://restcountries.eu/data/srb.svg', + currency: 'Serbian dinar' + }, + { + name: 'Seychelles', + capital: 'Victoria', + languages: ['French', 'English'], + population: 91400, + flag: 'https://restcountries.eu/data/syc.svg', + currency: 'Seychellois rupee' + }, + { + name: 'Sierra Leone', + capital: 'Freetown', + languages: ['English'], + population: 7075641, + flag: 'https://restcountries.eu/data/sle.svg', + currency: 'Sierra Leonean leone' + }, + { + name: 'Singapore', + capital: 'Singapore', + languages: ['English', 'Malay', 'Tamil', 'Chinese'], + population: 5535000, + flag: 'https://restcountries.eu/data/sgp.svg', + currency: 'Brunei dollar' + }, + { + name: 'Sint Maarten (Dutch part)', + capital: 'Philipsburg', + languages: ['Dutch', 'English'], + population: 38247, + flag: 'https://restcountries.eu/data/sxm.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Slovakia', + capital: 'Bratislava', + languages: ['Slovak'], + population: 5426252, + flag: 'https://restcountries.eu/data/svk.svg', + currency: 'Euro' + }, + { + name: 'Slovenia', + capital: 'Ljubljana', + languages: ['Slovene'], + population: 2064188, + flag: 'https://restcountries.eu/data/svn.svg', + currency: 'Euro' + }, + { + name: 'Solomon Islands', + capital: 'Honiara', + languages: ['English'], + population: 642000, + flag: 'https://restcountries.eu/data/slb.svg', + currency: 'Solomon Islands dollar' + }, + { + name: 'Somalia', + capital: 'Mogadishu', + languages: ['Somali', 'Arabic'], + population: 11079000, + flag: 'https://restcountries.eu/data/som.svg', + currency: 'Somali shilling' + }, + { + name: 'South Africa', + capital: 'Pretoria', + languages: [ + 'Afrikaans', + 'English', + 'Southern Ndebele', + 'Southern Sotho', + 'Swati', + 'Tswana', + 'Tsonga', + 'Venda', + 'Xhosa', + 'Zulu' + ], + population: 55653654, + flag: 'https://restcountries.eu/data/zaf.svg', + currency: 'South African rand' + }, + { + name: 'South Georgia and the South Sandwich Islands', + capital: 'King Edward Point', + languages: ['English'], + population: 30, + flag: 'https://restcountries.eu/data/sgs.svg', + currency: 'British pound' + }, + { + name: 'Korea (Republic of)', + capital: 'Seoul', + languages: ['Korean'], + population: 50801405, + flag: 'https://restcountries.eu/data/kor.svg', + currency: 'South Korean won' + }, + { + name: 'South Sudan', + capital: 'Juba', + languages: ['English'], + population: 12131000, + flag: 'https://restcountries.eu/data/ssd.svg', + currency: 'South Sudanese pound' + }, + { + name: 'Spain', + capital: 'Madrid', + languages: ['Spanish'], + population: 46438422, + flag: 'https://restcountries.eu/data/esp.svg', + currency: 'Euro' + }, + { + name: 'Sri Lanka', + capital: 'Colombo', + languages: ['Sinhalese', 'Tamil'], + population: 20966000, + flag: 'https://restcountries.eu/data/lka.svg', + currency: 'Sri Lankan rupee' + }, + { + name: 'Sudan', + capital: 'Khartoum', + languages: ['Arabic', 'English'], + population: 39598700, + flag: 'https://restcountries.eu/data/sdn.svg', + currency: 'Sudanese pound' + }, + { + name: 'Suriname', + capital: 'Paramaribo', + languages: ['Dutch'], + population: 541638, + flag: 'https://restcountries.eu/data/sur.svg', + currency: 'Surinamese dollar' + }, + { + name: 'Svalbard and Jan Mayen', + capital: 'Longyearbyen', + languages: ['Norwegian'], + population: 2562, + flag: 'https://restcountries.eu/data/sjm.svg', + currency: 'Norwegian krone' + }, + { + name: 'Swaziland', + capital: 'Lobamba', + languages: ['English', 'Swati'], + population: 1132657, + flag: 'https://restcountries.eu/data/swz.svg', + currency: 'Swazi lilangeni' + }, + { + name: 'Sweden', + capital: 'Stockholm', + languages: ['Swedish'], + population: 9894888, + flag: 'https://restcountries.eu/data/swe.svg', + currency: 'Swedish krona' + }, + { + name: 'Switzerland', + capital: 'Bern', + languages: ['German', 'French', 'Italian'], + population: 8341600, + flag: 'https://restcountries.eu/data/che.svg', + currency: 'Swiss franc' + }, + { + name: 'Syrian Arab Republic', + capital: 'Damascus', + languages: ['Arabic'], + population: 18564000, + flag: 'https://restcountries.eu/data/syr.svg', + currency: 'Syrian pound' + }, + { + name: 'Taiwan', + capital: 'Taipei', + languages: ['Chinese'], + population: 23503349, + flag: 'https://restcountries.eu/data/twn.svg', + currency: 'New Taiwan dollar' + }, + { + name: 'Tajikistan', + capital: 'Dushanbe', + languages: ['Tajik', 'Russian'], + population: 8593600, + flag: 'https://restcountries.eu/data/tjk.svg', + currency: 'Tajikistani somoni' + }, + { + name: 'Tanzania, United Republic of', + capital: 'Dodoma', + languages: ['Swahili', 'English'], + population: 55155000, + flag: 'https://restcountries.eu/data/tza.svg', + currency: 'Tanzanian shilling' + }, + { + name: 'Thailand', + capital: 'Bangkok', + languages: ['Thai'], + population: 65327652, + flag: 'https://restcountries.eu/data/tha.svg', + currency: 'Thai baht' + }, + { + name: 'Timor-Leste', + capital: 'Dili', + languages: ['Portuguese'], + population: 1167242, + flag: 'https://restcountries.eu/data/tls.svg', + currency: 'United States dollar' + }, + { + name: 'Togo', + capital: 'Lomé', + languages: ['French'], + population: 7143000, + flag: 'https://restcountries.eu/data/tgo.svg', + currency: 'West African CFA franc' + }, + { + name: 'Tokelau', + capital: 'Fakaofo', + languages: ['English'], + population: 1411, + flag: 'https://restcountries.eu/data/tkl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Tonga', + capital: "Nuku'alofa", + languages: ['English', 'Tonga (Tonga Islands)'], + population: 103252, + flag: 'https://restcountries.eu/data/ton.svg', + currency: 'Tongan paʻanga' + }, + { + name: 'Trinidad and Tobago', + capital: 'Port of Spain', + languages: ['English'], + population: 1349667, + flag: 'https://restcountries.eu/data/tto.svg', + currency: 'Trinidad and Tobago dollar' + }, + { + name: 'Tunisia', + capital: 'Tunis', + languages: ['Arabic'], + population: 11154400, + flag: 'https://restcountries.eu/data/tun.svg', + currency: 'Tunisian dinar' + }, + { + name: 'Turkey', + capital: 'Ankara', + languages: ['Turkish'], + population: 78741053, + flag: 'https://restcountries.eu/data/tur.svg', + currency: 'Turkish lira' + }, + { + name: 'Turkmenistan', + capital: 'Ashgabat', + languages: ['Turkmen', 'Russian'], + population: 4751120, + flag: 'https://restcountries.eu/data/tkm.svg', + currency: 'Turkmenistan manat' + }, + { + name: 'Turks and Caicos Islands', + capital: 'Cockburn Town', + languages: ['English'], + population: 31458, + flag: 'https://restcountries.eu/data/tca.svg', + currency: 'United States dollar' + }, + { + name: 'Tuvalu', + capital: 'Funafuti', + languages: ['English'], + population: 10640, + flag: 'https://restcountries.eu/data/tuv.svg', + currency: 'Australian dollar' + }, + { + name: 'Uganda', + capital: 'Kampala', + languages: ['English', 'Swahili'], + population: 33860700, + flag: 'https://restcountries.eu/data/uga.svg', + currency: 'Ugandan shilling' + }, + { + name: 'Ukraine', + capital: 'Kiev', + languages: ['Ukrainian'], + population: 42692393, + flag: 'https://restcountries.eu/data/ukr.svg', + currency: 'Ukrainian hryvnia' + }, + { + name: 'United Arab Emirates', + capital: 'Abu Dhabi', + languages: ['Arabic'], + population: 9856000, + flag: 'https://restcountries.eu/data/are.svg', + currency: 'United Arab Emirates dirham' + }, + { + name: 'United Kingdom of Great Britain and Northern Ireland', + capital: 'London', + languages: ['English'], + population: 65110000, + flag: 'https://restcountries.eu/data/gbr.svg', + currency: 'British pound' + }, + { + name: 'United States of America', + capital: 'Washington, D.C.', + languages: ['English'], + population: 323947000, + flag: 'https://restcountries.eu/data/usa.svg', + currency: 'United States dollar' + }, + { + name: 'Uruguay', + capital: 'Montevideo', + languages: ['Spanish'], + population: 3480222, + flag: 'https://restcountries.eu/data/ury.svg', + currency: 'Uruguayan peso' + }, + { + name: 'Uzbekistan', + capital: 'Tashkent', + languages: ['Uzbek', 'Russian'], + population: 31576400, + flag: 'https://restcountries.eu/data/uzb.svg', + currency: "Uzbekistani so'm" + }, + { + name: 'Vanuatu', + capital: 'Port Vila', + languages: ['Bislama', 'English', 'French'], + population: 277500, + flag: 'https://restcountries.eu/data/vut.svg', + currency: 'Vanuatu vatu' + }, + { + name: 'Venezuela (Bolivarian Republic of)', + capital: 'Caracas', + languages: ['Spanish'], + population: 31028700, + flag: 'https://restcountries.eu/data/ven.svg', + currency: 'Venezuelan bolívar' + }, + { + name: 'Viet Nam', + capital: 'Hanoi', + languages: ['Vietnamese'], + population: 92700000, + flag: 'https://restcountries.eu/data/vnm.svg', + currency: 'Vietnamese đồng' + }, + { + name: 'Wallis and Futuna', + capital: 'Mata-Utu', + languages: ['French'], + population: 11750, + flag: 'https://restcountries.eu/data/wlf.svg', + currency: 'CFP franc' + }, + { + name: 'Western Sahara', + capital: 'El Aaiún', + languages: ['Spanish'], + population: 510713, + flag: 'https://restcountries.eu/data/esh.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Yemen', + capital: "Sana'a", + languages: ['Arabic'], + population: 27478000, + flag: 'https://restcountries.eu/data/yem.svg', + currency: 'Yemeni rial' + }, + { + name: 'Zambia', + capital: 'Lusaka', + languages: ['English'], + population: 15933883, + flag: 'https://restcountries.eu/data/zmb.svg', + currency: 'Zambian kwacha' + }, + { + name: 'Zimbabwe', + capital: 'Harare', + languages: ['English', 'Shona', 'Northern Ndebele'], + population: 14240168, + flag: 'https://restcountries.eu/data/zwe.svg', + currency: 'Botswana pula' + } +] diff --git a/13_Day/13_day_starter/index.html b/13_Day/13_day_starter/index.html new file mode 100644 index 0000000..977daaf --- /dev/null +++ b/13_Day/13_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:13 Day + + + +

30DaysOfJavaScript:13 Day

+

Console Object Methods

+ + + + + + + \ No newline at end of file diff --git a/13_Day/13_day_starter/scripts/main.js b/13_Day/13_day_starter/scripts/main.js new file mode 100644 index 0000000..c6045c8 --- /dev/null +++ b/13_Day/13_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file From 1d1b681fc93149f7194699f267935916f276119f Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Tue, 14 Jan 2020 14:34:04 +0200 Subject: [PATCH 04/21] fixing links --- ...ing_and_spread.md => 11_day_destructuring_and_spread.md} | 0 13_Day/13_day_console_object_methods.md | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) rename 11_Day/{11_destructuring_and_spread.md => 11_day_destructuring_and_spread.md} (100%) diff --git a/11_Day/11_destructuring_and_spread.md b/11_Day/11_day_destructuring_and_spread.md similarity index 100% rename from 11_Day/11_destructuring_and_spread.md rename to 11_Day/11_day_destructuring_and_spread.md diff --git a/13_Day/13_day_console_object_methods.md b/13_Day/13_day_console_object_methods.md index 5622a82..6026bd5 100644 --- a/13_Day/13_day_console_object_methods.md +++ b/13_Day/13_day_console_object_methods.md @@ -13,7 +13,7 @@ -[<< Day 11](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](#) +[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](#) ![Thirty Days Of JavaScript](../images/banners/day_1_13.png) - [Day 13](#day-13) @@ -319,7 +319,7 @@ The console.clear() cleans the browser console. 1. Display the countries array as a table 2. Display the countries object as a table - 3. User console.group() to group logs + 3. Use console.group() to group logs ### Exercises:Level 2 @@ -334,4 +334,4 @@ The console.clear() cleans the browser console. 🎉 CONGRATULATIONS ! 🎉 -[<< Day 11](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](#) \ No newline at end of file +[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](#) \ No newline at end of file From 4648a74380b53beedbcca1affd3c2d1be1449b3f Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Tue, 14 Jan 2020 14:36:25 +0200 Subject: [PATCH 05/21] fixing links --- 12_Day/12_day_regular_expressions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/12_Day/12_day_regular_expressions.md b/12_Day/12_day_regular_expressions.md index 1bc243e..71f95f7 100644 --- a/12_Day/12_day_regular_expressions.md +++ b/12_Day/12_day_regular_expressions.md @@ -6,6 +6,7 @@ Twitter Follow + Author: Asabeneh Yetayeh
January, 2020 From 373544944c91da9891f9a7853af23e764497edd8 Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Wed, 15 Jan 2020 00:57:37 +0200 Subject: [PATCH 06/21] day 14 --- .gitignore | 1 - 14_Day/14_day_error_handling.md | 193 ++ 14_Day/14_day_starter/data/countries_data.js | 2013 ++++++++++++++++++ 14_Day/14_day_starter/index.html | 17 + 14_Day/14_day_starter/scripts/main.js | 2 + 5 files changed, 2225 insertions(+), 1 deletion(-) create mode 100644 14_Day/14_day_error_handling.md create mode 100644 14_Day/14_day_starter/data/countries_data.js create mode 100644 14_Day/14_day_starter/index.html create mode 100644 14_Day/14_day_starter/scripts/main.js diff --git a/.gitignore b/.gitignore index ccb869a..81ca29f 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,6 @@ day9.md day10.md 01_02_03_days_backup.md test.md -14_Day 15_Day 16_Day 17_Day diff --git a/14_Day/14_day_error_handling.md b/14_Day/14_day_error_handling.md new file mode 100644 index 0000000..6c6b3cd --- /dev/null +++ b/14_Day/14_day_error_handling.md @@ -0,0 +1,193 @@ +
+

30 Days Of JavaScript

+ + + + + Twitter Follow + + +Author: +Asabeneh Yetayeh
+ January, 2020 +
+ +
+ +[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](#) + +![Thirty Days Of JavaScript](../images/banners/day_1_15.png) + +- [Day 14](#day-14) + - [Error Handling](#error-handling) + - [Error Types](#error-types) + - [Exercises](#exercises) + - [Exercises:Level 1](#exerciseslevel-1) + - [Exercises: Level 2](#exercises-level-2) + - [Exercises:Level](#exerciseslevel) + +# Day 14 + +## Error Handling + +JavaScript is a loosely-typed language. Some times you will get a runtime error when you try to access an undefined variable or call undefined function etc. + +JavaScript similar to python or Java provides an error-handling mechanism to catch runtime errors using try-catch-finally block. + +```js +try { + // code that may throw an error +} catch (err) { + // code to be executed if an error occurs +} finally { + // code to be executed regardless of an error occurs or not +} +``` + +**try**: wrap suspicious code that may throw an error in try block.The try statement allows us to define a block of code to be tested for errors while it is being executed. + +**catch**: write code to do something in catch block when an error occurs. The catch block can have parameters that will give you error information. Catch block is used to log an error or display specific messages to the user. + +**finally**: finally block will always be executed regardless of the occurrence of an error. The finally block can be used to complete the remaining task or reset variables that might have changed before error occurred in try block. + +**Example:** + +```js +try { + let lastName = 'Yetayeh' + let fullName = fistName + ' ' + lastName +} catch (err) { + console.log(err) +} +``` + +```sh +ReferenceError: fistName is not defined + at :4:20 +``` + +```js +try { + let lastName = 'Yetayeh' + let fullName = fistName + ' ' + lastName +} catch (err) { + console.error(err) // we can use console.log() or console.error() +} finally { + console.log('In any case I will be executed') +} +``` + +```sh +ReferenceError: fistName is not defined + at :4:20 +In any case I will be executed +``` + +The catch block take a parameter. It is common to pass e, err or error as a parameter to the catch block. This parameter is an object and it has name and message keys. Lets use the name and message. + +```js +try { + let lastName = 'Yetayeh' + let fullName = fistName + ' ' + lastName +} catch (err) { + console.log('Name of the error', err.name) + console.log('Error message', err.message) +} finally { + console.log('In any case I will be executed') +} +``` + +```sh +Name of the error ReferenceError +Error message fistName is not defined +In any case I will be executed +``` + +throw: the throw statement allows us to create a custom error. We can through a string, number, boolean or an object. Use the throw statement to throw an exception. When you throw an exception, expression specifies the value of the exception. Each of the following throws an exception: + +```js +throw 'Error2' // generates an exception with a string value +throw 42 // generates an exception with the value 42 +throw true // generates an exception with the value true +throw new Error('Required') // generates an error object with the message of Required +``` + +```js +const throwErroExampleFun = () => { + let message + let x = prompt('Enter a number: ') + try { + if (x == '') throw 'empty' + if (isNaN(x)) throw 'not a number' + x = Number(x) + if (x < 5) throw 'too low' + if (x > 10) throw 'too high' + } catch (err) { + console.log(err) + } +} +throwErroExampleFun() +``` + +### Error Types + +- ReferenceError: An illegal reference has occurred. A ReferenceError is thrown if we use a variable that has not been declared. + +```js +let firstName = 'Asabeneh' +let fullName = firstName + ' ' + lastName + +console.log(fullName) +``` + +```sh +Uncaught ReferenceError: lastName is not defined + at :2:35 +``` + +- SyntaxError: A syntax error has occurred + +```js +let square = 2 x 2 +console.log(square) + +console.log('Hello, world") +``` + +```sh +Uncaught SyntaxError: Unexpected identifier +``` + +- TypeError: A type error has occurred + +```js +let num = 10 +console.log(num.toLowerCase()) +``` + +```sh +Uncaught TypeError: num.toLowerCase is not a function + at :2:17 +``` + +These are some of the common error you may face when you write a code. Understanding errors can help you to know what mistakes you made and it will help you to debug your code fast. + +🌕 You are flawless. Now, you knew how to handle errors and you can write robust application which handle unexpected user inputs. You have just completed day 14 challenges and you are 14 steps a head in to your way to greatness. Now do some exercises for your brain and for your muscle. + +## Exercises + +### Exercises:Level 1 + +Practice + +### Exercises: Level 2 + +Practice + +### Exercises:Level + +Practice + +🎉 CONGRATULATIONS ! 🎉 + +[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](#) diff --git a/14_Day/14_day_starter/data/countries_data.js b/14_Day/14_day_starter/data/countries_data.js new file mode 100644 index 0000000..92acddd --- /dev/null +++ b/14_Day/14_day_starter/data/countries_data.js @@ -0,0 +1,2013 @@ +const countries = [ + { + name: 'Afghanistan', + capital: 'Kabul', + languages: ['Pashto', 'Uzbek', 'Turkmen'], + population: 27657145, + flag: 'https://restcountries.eu/data/afg.svg', + currency: 'Afghan afghani' + }, + { + name: 'Åland Islands', + capital: 'Mariehamn', + languages: ['Swedish'], + population: 28875, + flag: 'https://restcountries.eu/data/ala.svg', + currency: 'Euro' + }, + { + name: 'Albania', + capital: 'Tirana', + languages: ['Albanian'], + population: 2886026, + flag: 'https://restcountries.eu/data/alb.svg', + currency: 'Albanian lek' + }, + { + name: 'Algeria', + capital: 'Algiers', + languages: ['Arabic'], + population: 40400000, + flag: 'https://restcountries.eu/data/dza.svg', + currency: 'Algerian dinar' + }, + { + name: 'American Samoa', + capital: 'Pago Pago', + languages: ['English', 'Samoan'], + population: 57100, + flag: 'https://restcountries.eu/data/asm.svg', + currency: 'United State Dollar' + }, + { + name: 'Andorra', + capital: 'Andorra la Vella', + languages: ['Catalan'], + population: 78014, + flag: 'https://restcountries.eu/data/and.svg', + currency: 'Euro' + }, + { + name: 'Angola', + capital: 'Luanda', + languages: ['Portuguese'], + population: 25868000, + flag: 'https://restcountries.eu/data/ago.svg', + currency: 'Angolan kwanza' + }, + { + name: 'Anguilla', + capital: 'The Valley', + languages: ['English'], + population: 13452, + flag: 'https://restcountries.eu/data/aia.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Antarctica', + capital: '', + languages: ['English', 'Russian'], + population: 1000, + flag: 'https://restcountries.eu/data/ata.svg', + currency: 'Australian dollar' + }, + { + name: 'Antigua and Barbuda', + capital: "Saint John's", + languages: ['English'], + population: 86295, + flag: 'https://restcountries.eu/data/atg.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Argentina', + capital: 'Buenos Aires', + languages: ['Spanish', 'Guaraní'], + population: 43590400, + flag: 'https://restcountries.eu/data/arg.svg', + currency: 'Argentine peso' + }, + { + name: 'Armenia', + capital: 'Yerevan', + languages: ['Armenian', 'Russian'], + population: 2994400, + flag: 'https://restcountries.eu/data/arm.svg', + currency: 'Armenian dram' + }, + { + name: 'Aruba', + capital: 'Oranjestad', + languages: ['Dutch', '(Eastern) Punjabi'], + population: 107394, + flag: 'https://restcountries.eu/data/abw.svg', + currency: 'Aruban florin' + }, + { + name: 'Australia', + capital: 'Canberra', + languages: ['English'], + population: 24117360, + flag: 'https://restcountries.eu/data/aus.svg', + currency: 'Australian dollar' + }, + { + name: 'Austria', + capital: 'Vienna', + languages: ['German'], + population: 8725931, + flag: 'https://restcountries.eu/data/aut.svg', + currency: 'Euro' + }, + { + name: 'Azerbaijan', + capital: 'Baku', + languages: ['Azerbaijani'], + population: 9730500, + flag: 'https://restcountries.eu/data/aze.svg', + currency: 'Azerbaijani manat' + }, + { + name: 'Bahamas', + capital: 'Nassau', + languages: ['English'], + population: 378040, + flag: 'https://restcountries.eu/data/bhs.svg', + currency: 'Bahamian dollar' + }, + { + name: 'Bahrain', + capital: 'Manama', + languages: ['Arabic'], + population: 1404900, + flag: 'https://restcountries.eu/data/bhr.svg', + currency: 'Bahraini dinar' + }, + { + name: 'Bangladesh', + capital: 'Dhaka', + languages: ['Bengali'], + population: 161006790, + flag: 'https://restcountries.eu/data/bgd.svg', + currency: 'Bangladeshi taka' + }, + { + name: 'Barbados', + capital: 'Bridgetown', + languages: ['English'], + population: 285000, + flag: 'https://restcountries.eu/data/brb.svg', + currency: 'Barbadian dollar' + }, + { + name: 'Belarus', + capital: 'Minsk', + languages: ['Belarusian', 'Russian'], + population: 9498700, + flag: 'https://restcountries.eu/data/blr.svg', + currency: 'New Belarusian ruble' + }, + { + name: 'Belgium', + capital: 'Brussels', + languages: ['Dutch', 'French', 'German'], + population: 11319511, + flag: 'https://restcountries.eu/data/bel.svg', + currency: 'Euro' + }, + { + name: 'Belize', + capital: 'Belmopan', + languages: ['English', 'Spanish'], + population: 370300, + flag: 'https://restcountries.eu/data/blz.svg', + currency: 'Belize dollar' + }, + { + name: 'Benin', + capital: 'Porto-Novo', + languages: ['French'], + population: 10653654, + flag: 'https://restcountries.eu/data/ben.svg', + currency: 'West African CFA franc' + }, + { + name: 'Bermuda', + capital: 'Hamilton', + languages: ['English'], + population: 61954, + flag: 'https://restcountries.eu/data/bmu.svg', + currency: 'Bermudian dollar' + }, + { + name: 'Bhutan', + capital: 'Thimphu', + languages: ['Dzongkha'], + population: 775620, + flag: 'https://restcountries.eu/data/btn.svg', + currency: 'Bhutanese ngultrum' + }, + { + name: 'Bolivia (Plurinational State of)', + capital: 'Sucre', + languages: ['Spanish', 'Aymara', 'Quechua'], + population: 10985059, + flag: 'https://restcountries.eu/data/bol.svg', + currency: 'Bolivian boliviano' + }, + { + name: 'Bonaire, Sint Eustatius and Saba', + capital: 'Kralendijk', + languages: ['Dutch'], + population: 17408, + flag: 'https://restcountries.eu/data/bes.svg', + currency: 'United States dollar' + }, + { + name: 'Bosnia and Herzegovina', + capital: 'Sarajevo', + languages: ['Bosnian', 'Croatian', 'Serbian'], + population: 3531159, + flag: 'https://restcountries.eu/data/bih.svg', + currency: 'Bosnia and Herzegovina convertible mark' + }, + { + name: 'Botswana', + capital: 'Gaborone', + languages: ['English', 'Tswana'], + population: 2141206, + flag: 'https://restcountries.eu/data/bwa.svg', + currency: 'Botswana pula' + }, + { + name: 'Bouvet Island', + capital: '', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 0, + flag: 'https://restcountries.eu/data/bvt.svg', + currency: 'Norwegian krone' + }, + { + name: 'Brazil', + capital: 'Brasília', + languages: ['Portuguese'], + population: 206135893, + flag: 'https://restcountries.eu/data/bra.svg', + currency: 'Brazilian real' + }, + { + name: 'British Indian Ocean Territory', + capital: 'Diego Garcia', + languages: ['English'], + population: 3000, + flag: 'https://restcountries.eu/data/iot.svg', + currency: 'United States dollar' + }, + { + name: 'United States Minor Outlying Islands', + capital: '', + languages: ['English'], + population: 300, + flag: 'https://restcountries.eu/data/umi.svg', + currency: 'United States Dollar' + }, + { + name: 'Virgin Islands (British)', + capital: 'Road Town', + languages: ['English'], + population: 28514, + flag: 'https://restcountries.eu/data/vgb.svg', + currency: '[D]' + }, + { + name: 'Virgin Islands (U.S.)', + capital: 'Charlotte Amalie', + languages: ['English'], + population: 114743, + flag: 'https://restcountries.eu/data/vir.svg', + currency: 'United States dollar' + }, + { + name: 'Brunei Darussalam', + capital: 'Bandar Seri Begawan', + languages: ['Malay'], + population: 411900, + flag: 'https://restcountries.eu/data/brn.svg', + currency: 'Brunei dollar' + }, + { + name: 'Bulgaria', + capital: 'Sofia', + languages: ['Bulgarian'], + population: 7153784, + flag: 'https://restcountries.eu/data/bgr.svg', + currency: 'Bulgarian lev' + }, + { + name: 'Burkina Faso', + capital: 'Ouagadougou', + languages: ['French', 'Fula'], + population: 19034397, + flag: 'https://restcountries.eu/data/bfa.svg', + currency: 'West African CFA franc' + }, + { + name: 'Burundi', + capital: 'Bujumbura', + languages: ['French', 'Kirundi'], + population: 10114505, + flag: 'https://restcountries.eu/data/bdi.svg', + currency: 'Burundian franc' + }, + { + name: 'Cambodia', + capital: 'Phnom Penh', + languages: ['Khmer'], + population: 15626444, + flag: 'https://restcountries.eu/data/khm.svg', + currency: 'Cambodian riel' + }, + { + name: 'Cameroon', + capital: 'Yaoundé', + languages: ['English', 'French'], + population: 22709892, + flag: 'https://restcountries.eu/data/cmr.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Canada', + capital: 'Ottawa', + languages: ['English', 'French'], + population: 36155487, + flag: 'https://restcountries.eu/data/can.svg', + currency: 'Canadian dollar' + }, + { + name: 'Cabo Verde', + capital: 'Praia', + languages: ['Portuguese'], + population: 531239, + flag: 'https://restcountries.eu/data/cpv.svg', + currency: 'Cape Verdean escudo' + }, + { + name: 'Cayman Islands', + capital: 'George Town', + languages: ['English'], + population: 58238, + flag: 'https://restcountries.eu/data/cym.svg', + currency: 'Cayman Islands dollar' + }, + { + name: 'Central African Republic', + capital: 'Bangui', + languages: ['French', 'Sango'], + population: 4998000, + flag: 'https://restcountries.eu/data/caf.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chad', + capital: "N'Djamena", + languages: ['French', 'Arabic'], + population: 14497000, + flag: 'https://restcountries.eu/data/tcd.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chile', + capital: 'Santiago', + languages: ['Spanish'], + population: 18191900, + flag: 'https://restcountries.eu/data/chl.svg', + currency: 'Chilean peso' + }, + { + name: 'China', + capital: 'Beijing', + languages: ['Chinese'], + population: 1377422166, + flag: 'https://restcountries.eu/data/chn.svg', + currency: 'Chinese yuan' + }, + { + name: 'Christmas Island', + capital: 'Flying Fish Cove', + languages: ['English'], + population: 2072, + flag: 'https://restcountries.eu/data/cxr.svg', + currency: 'Australian dollar' + }, + { + name: 'Cocos (Keeling) Islands', + capital: 'West Island', + languages: ['English'], + population: 550, + flag: 'https://restcountries.eu/data/cck.svg', + currency: 'Australian dollar' + }, + { + name: 'Colombia', + capital: 'Bogotá', + languages: ['Spanish'], + population: 48759958, + flag: 'https://restcountries.eu/data/col.svg', + currency: 'Colombian peso' + }, + { + name: 'Comoros', + capital: 'Moroni', + languages: ['Arabic', 'French'], + population: 806153, + flag: 'https://restcountries.eu/data/com.svg', + currency: 'Comorian franc' + }, + { + name: 'Congo', + capital: 'Brazzaville', + languages: ['French', 'Lingala'], + population: 4741000, + flag: 'https://restcountries.eu/data/cog.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Congo (Democratic Republic of the)', + capital: 'Kinshasa', + languages: ['French', 'Lingala', 'Kongo', 'Swahili', 'Luba-Katanga'], + population: 85026000, + flag: 'https://restcountries.eu/data/cod.svg', + currency: 'Congolese franc' + }, + { + name: 'Cook Islands', + capital: 'Avarua', + languages: ['English'], + population: 18100, + flag: 'https://restcountries.eu/data/cok.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Costa Rica', + capital: 'San José', + languages: ['Spanish'], + population: 4890379, + flag: 'https://restcountries.eu/data/cri.svg', + currency: 'Costa Rican colón' + }, + { + name: 'Croatia', + capital: 'Zagreb', + languages: ['Croatian'], + population: 4190669, + flag: 'https://restcountries.eu/data/hrv.svg', + currency: 'Croatian kuna' + }, + { + name: 'Cuba', + capital: 'Havana', + languages: ['Spanish'], + population: 11239004, + flag: 'https://restcountries.eu/data/cub.svg', + currency: 'Cuban convertible peso' + }, + { + name: 'Curaçao', + capital: 'Willemstad', + languages: ['Dutch', '(Eastern) Punjabi', 'English'], + population: 154843, + flag: 'https://restcountries.eu/data/cuw.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Cyprus', + capital: 'Nicosia', + languages: ['Greek (modern)', 'Turkish', 'Armenian'], + population: 847000, + flag: 'https://restcountries.eu/data/cyp.svg', + currency: 'Euro' + }, + { + name: 'Czech Republic', + capital: 'Prague', + languages: ['Czech', 'Slovak'], + population: 10558524, + flag: 'https://restcountries.eu/data/cze.svg', + currency: 'Czech koruna' + }, + { + name: 'Denmark', + capital: 'Copenhagen', + languages: ['Danish'], + population: 5717014, + flag: 'https://restcountries.eu/data/dnk.svg', + currency: 'Danish krone' + }, + { + name: 'Djibouti', + capital: 'Djibouti', + languages: ['French', 'Arabic'], + population: 900000, + flag: 'https://restcountries.eu/data/dji.svg', + currency: 'Djiboutian franc' + }, + { + name: 'Dominica', + capital: 'Roseau', + languages: ['English'], + population: 71293, + flag: 'https://restcountries.eu/data/dma.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Dominican Republic', + capital: 'Santo Domingo', + languages: ['Spanish'], + population: 10075045, + flag: 'https://restcountries.eu/data/dom.svg', + currency: 'Dominican peso' + }, + { + name: 'Ecuador', + capital: 'Quito', + languages: ['Spanish'], + population: 16545799, + flag: 'https://restcountries.eu/data/ecu.svg', + currency: 'United States dollar' + }, + { + name: 'Egypt', + capital: 'Cairo', + languages: ['Arabic'], + population: 91290000, + flag: 'https://restcountries.eu/data/egy.svg', + currency: 'Egyptian pound' + }, + { + name: 'El Salvador', + capital: 'San Salvador', + languages: ['Spanish'], + population: 6520675, + flag: 'https://restcountries.eu/data/slv.svg', + currency: 'United States dollar' + }, + { + name: 'Equatorial Guinea', + capital: 'Malabo', + languages: ['Spanish', 'French'], + population: 1222442, + flag: 'https://restcountries.eu/data/gnq.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Eritrea', + capital: 'Asmara', + languages: ['Tigrinya', 'Arabic', 'English'], + population: 5352000, + flag: 'https://restcountries.eu/data/eri.svg', + currency: 'Eritrean nakfa' + }, + { + name: 'Estonia', + capital: 'Tallinn', + languages: ['Estonian'], + population: 1315944, + flag: 'https://restcountries.eu/data/est.svg', + currency: 'Euro' + }, + { + name: 'Ethiopia', + capital: 'Addis Ababa', + languages: ['Amharic'], + population: 92206005, + flag: 'https://restcountries.eu/data/eth.svg', + currency: 'Ethiopian birr' + }, + { + name: 'Falkland Islands (Malvinas)', + capital: 'Stanley', + languages: ['English'], + population: 2563, + flag: 'https://restcountries.eu/data/flk.svg', + currency: 'Falkland Islands pound' + }, + { + name: 'Faroe Islands', + capital: 'Tórshavn', + languages: ['Faroese'], + population: 49376, + flag: 'https://restcountries.eu/data/fro.svg', + currency: 'Danish krone' + }, + { + name: 'Fiji', + capital: 'Suva', + languages: ['English', 'Fijian', 'Hindi', 'Urdu'], + population: 867000, + flag: 'https://restcountries.eu/data/fji.svg', + currency: 'Fijian dollar' + }, + { + name: 'Finland', + capital: 'Helsinki', + languages: ['Finnish', 'Swedish'], + population: 5491817, + flag: 'https://restcountries.eu/data/fin.svg', + currency: 'Euro' + }, + { + name: 'France', + capital: 'Paris', + languages: ['French'], + population: 66710000, + flag: 'https://restcountries.eu/data/fra.svg', + currency: 'Euro' + }, + { + name: 'French Guiana', + capital: 'Cayenne', + languages: ['French'], + population: 254541, + flag: 'https://restcountries.eu/data/guf.svg', + currency: 'Euro' + }, + { + name: 'French Polynesia', + capital: 'Papeetē', + languages: ['French'], + population: 271800, + flag: 'https://restcountries.eu/data/pyf.svg', + currency: 'CFP franc' + }, + { + name: 'French Southern Territories', + capital: 'Port-aux-Français', + languages: ['French'], + population: 140, + flag: 'https://restcountries.eu/data/atf.svg', + currency: 'Euro' + }, + { + name: 'Gabon', + capital: 'Libreville', + languages: ['French'], + population: 1802278, + flag: 'https://restcountries.eu/data/gab.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Gambia', + capital: 'Banjul', + languages: ['English'], + population: 1882450, + flag: 'https://restcountries.eu/data/gmb.svg', + currency: 'Gambian dalasi' + }, + { + name: 'Georgia', + capital: 'Tbilisi', + languages: ['Georgian'], + population: 3720400, + flag: 'https://restcountries.eu/data/geo.svg', + currency: 'Georgian Lari' + }, + { + name: 'Germany', + capital: 'Berlin', + languages: ['German'], + population: 81770900, + flag: 'https://restcountries.eu/data/deu.svg', + currency: 'Euro' + }, + { + name: 'Ghana', + capital: 'Accra', + languages: ['English'], + population: 27670174, + flag: 'https://restcountries.eu/data/gha.svg', + currency: 'Ghanaian cedi' + }, + { + name: 'Gibraltar', + capital: 'Gibraltar', + languages: ['English'], + population: 33140, + flag: 'https://restcountries.eu/data/gib.svg', + currency: 'Gibraltar pound' + }, + { + name: 'Greece', + capital: 'Athens', + languages: ['Greek (modern)'], + population: 10858018, + flag: 'https://restcountries.eu/data/grc.svg', + currency: 'Euro' + }, + { + name: 'Greenland', + capital: 'Nuuk', + languages: ['Kalaallisut'], + population: 55847, + flag: 'https://restcountries.eu/data/grl.svg', + currency: 'Danish krone' + }, + { + name: 'Grenada', + capital: "St. George's", + languages: ['English'], + population: 103328, + flag: 'https://restcountries.eu/data/grd.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Guadeloupe', + capital: 'Basse-Terre', + languages: ['French'], + population: 400132, + flag: 'https://restcountries.eu/data/glp.svg', + currency: 'Euro' + }, + { + name: 'Guam', + capital: 'Hagåtña', + languages: ['English', 'Chamorro', 'Spanish'], + population: 184200, + flag: 'https://restcountries.eu/data/gum.svg', + currency: 'United States dollar' + }, + { + name: 'Guatemala', + capital: 'Guatemala City', + languages: ['Spanish'], + population: 16176133, + flag: 'https://restcountries.eu/data/gtm.svg', + currency: 'Guatemalan quetzal' + }, + { + name: 'Guernsey', + capital: 'St. Peter Port', + languages: ['English', 'French'], + population: 62999, + flag: 'https://restcountries.eu/data/ggy.svg', + currency: 'British pound' + }, + { + name: 'Guinea', + capital: 'Conakry', + languages: ['French', 'Fula'], + population: 12947000, + flag: 'https://restcountries.eu/data/gin.svg', + currency: 'Guinean franc' + }, + { + name: 'Guinea-Bissau', + capital: 'Bissau', + languages: ['Portuguese'], + population: 1547777, + flag: 'https://restcountries.eu/data/gnb.svg', + currency: 'West African CFA franc' + }, + { + name: 'Guyana', + capital: 'Georgetown', + languages: ['English'], + population: 746900, + flag: 'https://restcountries.eu/data/guy.svg', + currency: 'Guyanese dollar' + }, + { + name: 'Haiti', + capital: 'Port-au-Prince', + languages: ['French', 'Haitian'], + population: 11078033, + flag: 'https://restcountries.eu/data/hti.svg', + currency: 'Haitian gourde' + }, + { + name: 'Heard Island and McDonald Islands', + capital: '', + languages: ['English'], + population: 0, + flag: 'https://restcountries.eu/data/hmd.svg', + currency: 'Australian dollar' + }, + { + name: 'Holy See', + capital: 'Rome', + languages: ['Latin', 'Italian', 'French', 'German'], + population: 451, + flag: 'https://restcountries.eu/data/vat.svg', + currency: 'Euro' + }, + { + name: 'Honduras', + capital: 'Tegucigalpa', + languages: ['Spanish'], + population: 8576532, + flag: 'https://restcountries.eu/data/hnd.svg', + currency: 'Honduran lempira' + }, + { + name: 'Hong Kong', + capital: 'City of Victoria', + languages: ['English', 'Chinese'], + population: 7324300, + flag: 'https://restcountries.eu/data/hkg.svg', + currency: 'Hong Kong dollar' + }, + { + name: 'Hungary', + capital: 'Budapest', + languages: ['Hungarian'], + population: 9823000, + flag: 'https://restcountries.eu/data/hun.svg', + currency: 'Hungarian forint' + }, + { + name: 'Iceland', + capital: 'Reykjavík', + languages: ['Icelandic'], + population: 334300, + flag: 'https://restcountries.eu/data/isl.svg', + currency: 'Icelandic króna' + }, + { + name: 'India', + capital: 'New Delhi', + languages: ['Hindi', 'English'], + population: 1295210000, + flag: 'https://restcountries.eu/data/ind.svg', + currency: 'Indian rupee' + }, + { + name: 'Indonesia', + capital: 'Jakarta', + languages: ['Indonesian'], + population: 258705000, + flag: 'https://restcountries.eu/data/idn.svg', + currency: 'Indonesian rupiah' + }, + { + name: "Côte d'Ivoire", + capital: 'Yamoussoukro', + languages: ['French'], + population: 22671331, + flag: 'https://restcountries.eu/data/civ.svg', + currency: 'West African CFA franc' + }, + { + name: 'Iran (Islamic Republic of)', + capital: 'Tehran', + languages: ['Persian (Farsi)'], + population: 79369900, + flag: 'https://restcountries.eu/data/irn.svg', + currency: 'Iranian rial' + }, + { + name: 'Iraq', + capital: 'Baghdad', + languages: ['Arabic', 'Kurdish'], + population: 37883543, + flag: 'https://restcountries.eu/data/irq.svg', + currency: 'Iraqi dinar' + }, + { + name: 'Ireland', + capital: 'Dublin', + languages: ['Irish', 'English'], + population: 6378000, + flag: 'https://restcountries.eu/data/irl.svg', + currency: 'Euro' + }, + { + name: 'Isle of Man', + capital: 'Douglas', + languages: ['English', 'Manx'], + population: 84497, + flag: 'https://restcountries.eu/data/imn.svg', + currency: 'British pound' + }, + { + name: 'Israel', + capital: 'Jerusalem', + languages: ['Hebrew (modern)', 'Arabic'], + population: 8527400, + flag: 'https://restcountries.eu/data/isr.svg', + currency: 'Israeli new shekel' + }, + { + name: 'Italy', + capital: 'Rome', + languages: ['Italian'], + population: 60665551, + flag: 'https://restcountries.eu/data/ita.svg', + currency: 'Euro' + }, + { + name: 'Jamaica', + capital: 'Kingston', + languages: ['English'], + population: 2723246, + flag: 'https://restcountries.eu/data/jam.svg', + currency: 'Jamaican dollar' + }, + { + name: 'Japan', + capital: 'Tokyo', + languages: ['Japanese'], + population: 126960000, + flag: 'https://restcountries.eu/data/jpn.svg', + currency: 'Japanese yen' + }, + { + name: 'Jersey', + capital: 'Saint Helier', + languages: ['English', 'French'], + population: 100800, + flag: 'https://restcountries.eu/data/jey.svg', + currency: 'British pound' + }, + { + name: 'Jordan', + capital: 'Amman', + languages: ['Arabic'], + population: 9531712, + flag: 'https://restcountries.eu/data/jor.svg', + currency: 'Jordanian dinar' + }, + { + name: 'Kazakhstan', + capital: 'Astana', + languages: ['Kazakh', 'Russian'], + population: 17753200, + flag: 'https://restcountries.eu/data/kaz.svg', + currency: 'Kazakhstani tenge' + }, + { + name: 'Kenya', + capital: 'Nairobi', + languages: ['English', 'Swahili'], + population: 47251000, + flag: 'https://restcountries.eu/data/ken.svg', + currency: 'Kenyan shilling' + }, + { + name: 'Kiribati', + capital: 'South Tarawa', + languages: ['English'], + population: 113400, + flag: 'https://restcountries.eu/data/kir.svg', + currency: 'Australian dollar' + }, + { + name: 'Kuwait', + capital: 'Kuwait City', + languages: ['Arabic'], + population: 4183658, + flag: 'https://restcountries.eu/data/kwt.svg', + currency: 'Kuwaiti dinar' + }, + { + name: 'Kyrgyzstan', + capital: 'Bishkek', + languages: ['Kyrgyz', 'Russian'], + population: 6047800, + flag: 'https://restcountries.eu/data/kgz.svg', + currency: 'Kyrgyzstani som' + }, + { + name: "Lao People's Democratic Republic", + capital: 'Vientiane', + languages: ['Lao'], + population: 6492400, + flag: 'https://restcountries.eu/data/lao.svg', + currency: 'Lao kip' + }, + { + name: 'Latvia', + capital: 'Riga', + languages: ['Latvian'], + population: 1961600, + flag: 'https://restcountries.eu/data/lva.svg', + currency: 'Euro' + }, + { + name: 'Lebanon', + capital: 'Beirut', + languages: ['Arabic', 'French'], + population: 5988000, + flag: 'https://restcountries.eu/data/lbn.svg', + currency: 'Lebanese pound' + }, + { + name: 'Lesotho', + capital: 'Maseru', + languages: ['English', 'Southern Sotho'], + population: 1894194, + flag: 'https://restcountries.eu/data/lso.svg', + currency: 'Lesotho loti' + }, + { + name: 'Liberia', + capital: 'Monrovia', + languages: ['English'], + population: 4615000, + flag: 'https://restcountries.eu/data/lbr.svg', + currency: 'Liberian dollar' + }, + { + name: 'Libya', + capital: 'Tripoli', + languages: ['Arabic'], + population: 6385000, + flag: 'https://restcountries.eu/data/lby.svg', + currency: 'Libyan dinar' + }, + { + name: 'Liechtenstein', + capital: 'Vaduz', + languages: ['German'], + population: 37623, + flag: 'https://restcountries.eu/data/lie.svg', + currency: 'Swiss franc' + }, + { + name: 'Lithuania', + capital: 'Vilnius', + languages: ['Lithuanian'], + population: 2872294, + flag: 'https://restcountries.eu/data/ltu.svg', + currency: 'Euro' + }, + { + name: 'Luxembourg', + capital: 'Luxembourg', + languages: ['French', 'German', 'Luxembourgish'], + population: 576200, + flag: 'https://restcountries.eu/data/lux.svg', + currency: 'Euro' + }, + { + name: 'Macao', + capital: '', + languages: ['Chinese', 'Portuguese'], + population: 649100, + flag: 'https://restcountries.eu/data/mac.svg', + currency: 'Macanese pataca' + }, + { + name: 'Macedonia (the former Yugoslav Republic of)', + capital: 'Skopje', + languages: ['Macedonian'], + population: 2058539, + flag: 'https://restcountries.eu/data/mkd.svg', + currency: 'Macedonian denar' + }, + { + name: 'Madagascar', + capital: 'Antananarivo', + languages: ['French', 'Malagasy'], + population: 22434363, + flag: 'https://restcountries.eu/data/mdg.svg', + currency: 'Malagasy ariary' + }, + { + name: 'Malawi', + capital: 'Lilongwe', + languages: ['English', 'Chichewa'], + population: 16832910, + flag: 'https://restcountries.eu/data/mwi.svg', + currency: 'Malawian kwacha' + }, + { + name: 'Malaysia', + capital: 'Kuala Lumpur', + languages: ['Malaysian'], + population: 31405416, + flag: 'https://restcountries.eu/data/mys.svg', + currency: 'Malaysian ringgit' + }, + { + name: 'Maldives', + capital: 'Malé', + languages: ['Divehi'], + population: 344023, + flag: 'https://restcountries.eu/data/mdv.svg', + currency: 'Maldivian rufiyaa' + }, + { + name: 'Mali', + capital: 'Bamako', + languages: ['French'], + population: 18135000, + flag: 'https://restcountries.eu/data/mli.svg', + currency: 'West African CFA franc' + }, + { + name: 'Malta', + capital: 'Valletta', + languages: ['Maltese', 'English'], + population: 425384, + flag: 'https://restcountries.eu/data/mlt.svg', + currency: 'Euro' + }, + { + name: 'Marshall Islands', + capital: 'Majuro', + languages: ['English', 'Marshallese'], + population: 54880, + flag: 'https://restcountries.eu/data/mhl.svg', + currency: 'United States dollar' + }, + { + name: 'Martinique', + capital: 'Fort-de-France', + languages: ['French'], + population: 378243, + flag: 'https://restcountries.eu/data/mtq.svg', + currency: 'Euro' + }, + { + name: 'Mauritania', + capital: 'Nouakchott', + languages: ['Arabic'], + population: 3718678, + flag: 'https://restcountries.eu/data/mrt.svg', + currency: 'Mauritanian ouguiya' + }, + { + name: 'Mauritius', + capital: 'Port Louis', + languages: ['English'], + population: 1262879, + flag: 'https://restcountries.eu/data/mus.svg', + currency: 'Mauritian rupee' + }, + { + name: 'Mayotte', + capital: 'Mamoudzou', + languages: ['French'], + population: 226915, + flag: 'https://restcountries.eu/data/myt.svg', + currency: 'Euro' + }, + { + name: 'Mexico', + capital: 'Mexico City', + languages: ['Spanish'], + population: 122273473, + flag: 'https://restcountries.eu/data/mex.svg', + currency: 'Mexican peso' + }, + { + name: 'Micronesia (Federated States of)', + capital: 'Palikir', + languages: ['English'], + population: 102800, + flag: 'https://restcountries.eu/data/fsm.svg', + currency: '[D]' + }, + { + name: 'Moldova (Republic of)', + capital: 'Chișinău', + languages: ['Romanian'], + population: 3553100, + flag: 'https://restcountries.eu/data/mda.svg', + currency: 'Moldovan leu' + }, + { + name: 'Monaco', + capital: 'Monaco', + languages: ['French'], + population: 38400, + flag: 'https://restcountries.eu/data/mco.svg', + currency: 'Euro' + }, + { + name: 'Mongolia', + capital: 'Ulan Bator', + languages: ['Mongolian'], + population: 3093100, + flag: 'https://restcountries.eu/data/mng.svg', + currency: 'Mongolian tögrög' + }, + { + name: 'Montenegro', + capital: 'Podgorica', + languages: ['Serbian', 'Bosnian', 'Albanian', 'Croatian'], + population: 621810, + flag: 'https://restcountries.eu/data/mne.svg', + currency: 'Euro' + }, + { + name: 'Montserrat', + capital: 'Plymouth', + languages: ['English'], + population: 4922, + flag: 'https://restcountries.eu/data/msr.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Morocco', + capital: 'Rabat', + languages: ['Arabic'], + population: 33337529, + flag: 'https://restcountries.eu/data/mar.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Mozambique', + capital: 'Maputo', + languages: ['Portuguese'], + population: 26423700, + flag: 'https://restcountries.eu/data/moz.svg', + currency: 'Mozambican metical' + }, + { + name: 'Myanmar', + capital: 'Naypyidaw', + languages: ['Burmese'], + population: 51419420, + flag: 'https://restcountries.eu/data/mmr.svg', + currency: 'Burmese kyat' + }, + { + name: 'Namibia', + capital: 'Windhoek', + languages: ['English', 'Afrikaans'], + population: 2324388, + flag: 'https://restcountries.eu/data/nam.svg', + currency: 'Namibian dollar' + }, + { + name: 'Nauru', + capital: 'Yaren', + languages: ['English', 'Nauruan'], + population: 10084, + flag: 'https://restcountries.eu/data/nru.svg', + currency: 'Australian dollar' + }, + { + name: 'Nepal', + capital: 'Kathmandu', + languages: ['Nepali'], + population: 28431500, + flag: 'https://restcountries.eu/data/npl.svg', + currency: 'Nepalese rupee' + }, + { + name: 'Netherlands', + capital: 'Amsterdam', + languages: ['Dutch'], + population: 17019800, + flag: 'https://restcountries.eu/data/nld.svg', + currency: 'Euro' + }, + { + name: 'New Caledonia', + capital: 'Nouméa', + languages: ['French'], + population: 268767, + flag: 'https://restcountries.eu/data/ncl.svg', + currency: 'CFP franc' + }, + { + name: 'New Zealand', + capital: 'Wellington', + languages: ['English', 'Māori'], + population: 4697854, + flag: 'https://restcountries.eu/data/nzl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Nicaragua', + capital: 'Managua', + languages: ['Spanish'], + population: 6262703, + flag: 'https://restcountries.eu/data/nic.svg', + currency: 'Nicaraguan córdoba' + }, + { + name: 'Niger', + capital: 'Niamey', + languages: ['French'], + population: 20715000, + flag: 'https://restcountries.eu/data/ner.svg', + currency: 'West African CFA franc' + }, + { + name: 'Nigeria', + capital: 'Abuja', + languages: ['English'], + population: 186988000, + flag: 'https://restcountries.eu/data/nga.svg', + currency: 'Nigerian naira' + }, + { + name: 'Niue', + capital: 'Alofi', + languages: ['English'], + population: 1470, + flag: 'https://restcountries.eu/data/niu.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Norfolk Island', + capital: 'Kingston', + languages: ['English'], + population: 2302, + flag: 'https://restcountries.eu/data/nfk.svg', + currency: 'Australian dollar' + }, + { + name: "Korea (Democratic People's Republic of)", + capital: 'Pyongyang', + languages: ['Korean'], + population: 25281000, + flag: 'https://restcountries.eu/data/prk.svg', + currency: 'North Korean won' + }, + { + name: 'Northern Mariana Islands', + capital: 'Saipan', + languages: ['English', 'Chamorro'], + population: 56940, + flag: 'https://restcountries.eu/data/mnp.svg', + currency: 'United States dollar' + }, + { + name: 'Norway', + capital: 'Oslo', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 5223256, + flag: 'https://restcountries.eu/data/nor.svg', + currency: 'Norwegian krone' + }, + { + name: 'Oman', + capital: 'Muscat', + languages: ['Arabic'], + population: 4420133, + flag: 'https://restcountries.eu/data/omn.svg', + currency: 'Omani rial' + }, + { + name: 'Pakistan', + capital: 'Islamabad', + languages: ['English', 'Urdu'], + population: 194125062, + flag: 'https://restcountries.eu/data/pak.svg', + currency: 'Pakistani rupee' + }, + { + name: 'Palau', + capital: 'Ngerulmud', + languages: ['English'], + population: 17950, + flag: 'https://restcountries.eu/data/plw.svg', + currency: '[E]' + }, + { + name: 'Palestine, State of', + capital: 'Ramallah', + languages: ['Arabic'], + population: 4682467, + flag: 'https://restcountries.eu/data/pse.svg', + currency: 'Israeli new sheqel' + }, + { + name: 'Panama', + capital: 'Panama City', + languages: ['Spanish'], + population: 3814672, + flag: 'https://restcountries.eu/data/pan.svg', + currency: 'Panamanian balboa' + }, + { + name: 'Papua New Guinea', + capital: 'Port Moresby', + languages: ['English'], + population: 8083700, + flag: 'https://restcountries.eu/data/png.svg', + currency: 'Papua New Guinean kina' + }, + { + name: 'Paraguay', + capital: 'Asunción', + languages: ['Spanish', 'Guaraní'], + population: 6854536, + flag: 'https://restcountries.eu/data/pry.svg', + currency: 'Paraguayan guaraní' + }, + { + name: 'Peru', + capital: 'Lima', + languages: ['Spanish'], + population: 31488700, + flag: 'https://restcountries.eu/data/per.svg', + currency: 'Peruvian sol' + }, + { + name: 'Philippines', + capital: 'Manila', + languages: ['English'], + population: 103279800, + flag: 'https://restcountries.eu/data/phl.svg', + currency: 'Philippine peso' + }, + { + name: 'Pitcairn', + capital: 'Adamstown', + languages: ['English'], + population: 56, + flag: 'https://restcountries.eu/data/pcn.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Poland', + capital: 'Warsaw', + languages: ['Polish'], + population: 38437239, + flag: 'https://restcountries.eu/data/pol.svg', + currency: 'Polish złoty' + }, + { + name: 'Portugal', + capital: 'Lisbon', + languages: ['Portuguese'], + population: 10374822, + flag: 'https://restcountries.eu/data/prt.svg', + currency: 'Euro' + }, + { + name: 'Puerto Rico', + capital: 'San Juan', + languages: ['Spanish', 'English'], + population: 3474182, + flag: 'https://restcountries.eu/data/pri.svg', + currency: 'United States dollar' + }, + { + name: 'Qatar', + capital: 'Doha', + languages: ['Arabic'], + population: 2587564, + flag: 'https://restcountries.eu/data/qat.svg', + currency: 'Qatari riyal' + }, + { + name: 'Republic of Kosovo', + capital: 'Pristina', + languages: ['Albanian', 'Serbian'], + population: 1733842, + flag: 'https://restcountries.eu/data/kos.svg', + currency: 'Euro' + }, + { + name: 'Réunion', + capital: 'Saint-Denis', + languages: ['French'], + population: 840974, + flag: 'https://restcountries.eu/data/reu.svg', + currency: 'Euro' + }, + { + name: 'Romania', + capital: 'Bucharest', + languages: ['Romanian'], + population: 19861408, + flag: 'https://restcountries.eu/data/rou.svg', + currency: 'Romanian leu' + }, + { + name: 'Russian Federation', + capital: 'Moscow', + languages: ['Russian'], + population: 146599183, + flag: 'https://restcountries.eu/data/rus.svg', + currency: 'Russian ruble' + }, + { + name: 'Rwanda', + capital: 'Kigali', + languages: ['Kinyarwanda', 'English', 'French'], + population: 11553188, + flag: 'https://restcountries.eu/data/rwa.svg', + currency: 'Rwandan franc' + }, + { + name: 'Saint Barthélemy', + capital: 'Gustavia', + languages: ['French'], + population: 9417, + flag: 'https://restcountries.eu/data/blm.svg', + currency: 'Euro' + }, + { + name: 'Saint Helena, Ascension and Tristan da Cunha', + capital: 'Jamestown', + languages: ['English'], + population: 4255, + flag: 'https://restcountries.eu/data/shn.svg', + currency: 'Saint Helena pound' + }, + { + name: 'Saint Kitts and Nevis', + capital: 'Basseterre', + languages: ['English'], + population: 46204, + flag: 'https://restcountries.eu/data/kna.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Lucia', + capital: 'Castries', + languages: ['English'], + population: 186000, + flag: 'https://restcountries.eu/data/lca.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Martin (French part)', + capital: 'Marigot', + languages: ['English', 'French', 'Dutch'], + population: 36979, + flag: 'https://restcountries.eu/data/maf.svg', + currency: 'Euro' + }, + { + name: 'Saint Pierre and Miquelon', + capital: 'Saint-Pierre', + languages: ['French'], + population: 6069, + flag: 'https://restcountries.eu/data/spm.svg', + currency: 'Euro' + }, + { + name: 'Saint Vincent and the Grenadines', + capital: 'Kingstown', + languages: ['English'], + population: 109991, + flag: 'https://restcountries.eu/data/vct.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Samoa', + capital: 'Apia', + languages: ['Samoan', 'English'], + population: 194899, + flag: 'https://restcountries.eu/data/wsm.svg', + currency: 'Samoan tālā' + }, + { + name: 'San Marino', + capital: 'City of San Marino', + languages: ['Italian'], + population: 33005, + flag: 'https://restcountries.eu/data/smr.svg', + currency: 'Euro' + }, + { + name: 'Sao Tome and Principe', + capital: 'São Tomé', + languages: ['Portuguese'], + population: 187356, + flag: 'https://restcountries.eu/data/stp.svg', + currency: 'São Tomé and Príncipe dobra' + }, + { + name: 'Saudi Arabia', + capital: 'Riyadh', + languages: ['Arabic'], + population: 32248200, + flag: 'https://restcountries.eu/data/sau.svg', + currency: 'Saudi riyal' + }, + { + name: 'Senegal', + capital: 'Dakar', + languages: ['French'], + population: 14799859, + flag: 'https://restcountries.eu/data/sen.svg', + currency: 'West African CFA franc' + }, + { + name: 'Serbia', + capital: 'Belgrade', + languages: ['Serbian'], + population: 7076372, + flag: 'https://restcountries.eu/data/srb.svg', + currency: 'Serbian dinar' + }, + { + name: 'Seychelles', + capital: 'Victoria', + languages: ['French', 'English'], + population: 91400, + flag: 'https://restcountries.eu/data/syc.svg', + currency: 'Seychellois rupee' + }, + { + name: 'Sierra Leone', + capital: 'Freetown', + languages: ['English'], + population: 7075641, + flag: 'https://restcountries.eu/data/sle.svg', + currency: 'Sierra Leonean leone' + }, + { + name: 'Singapore', + capital: 'Singapore', + languages: ['English', 'Malay', 'Tamil', 'Chinese'], + population: 5535000, + flag: 'https://restcountries.eu/data/sgp.svg', + currency: 'Brunei dollar' + }, + { + name: 'Sint Maarten (Dutch part)', + capital: 'Philipsburg', + languages: ['Dutch', 'English'], + population: 38247, + flag: 'https://restcountries.eu/data/sxm.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Slovakia', + capital: 'Bratislava', + languages: ['Slovak'], + population: 5426252, + flag: 'https://restcountries.eu/data/svk.svg', + currency: 'Euro' + }, + { + name: 'Slovenia', + capital: 'Ljubljana', + languages: ['Slovene'], + population: 2064188, + flag: 'https://restcountries.eu/data/svn.svg', + currency: 'Euro' + }, + { + name: 'Solomon Islands', + capital: 'Honiara', + languages: ['English'], + population: 642000, + flag: 'https://restcountries.eu/data/slb.svg', + currency: 'Solomon Islands dollar' + }, + { + name: 'Somalia', + capital: 'Mogadishu', + languages: ['Somali', 'Arabic'], + population: 11079000, + flag: 'https://restcountries.eu/data/som.svg', + currency: 'Somali shilling' + }, + { + name: 'South Africa', + capital: 'Pretoria', + languages: [ + 'Afrikaans', + 'English', + 'Southern Ndebele', + 'Southern Sotho', + 'Swati', + 'Tswana', + 'Tsonga', + 'Venda', + 'Xhosa', + 'Zulu' + ], + population: 55653654, + flag: 'https://restcountries.eu/data/zaf.svg', + currency: 'South African rand' + }, + { + name: 'South Georgia and the South Sandwich Islands', + capital: 'King Edward Point', + languages: ['English'], + population: 30, + flag: 'https://restcountries.eu/data/sgs.svg', + currency: 'British pound' + }, + { + name: 'Korea (Republic of)', + capital: 'Seoul', + languages: ['Korean'], + population: 50801405, + flag: 'https://restcountries.eu/data/kor.svg', + currency: 'South Korean won' + }, + { + name: 'South Sudan', + capital: 'Juba', + languages: ['English'], + population: 12131000, + flag: 'https://restcountries.eu/data/ssd.svg', + currency: 'South Sudanese pound' + }, + { + name: 'Spain', + capital: 'Madrid', + languages: ['Spanish'], + population: 46438422, + flag: 'https://restcountries.eu/data/esp.svg', + currency: 'Euro' + }, + { + name: 'Sri Lanka', + capital: 'Colombo', + languages: ['Sinhalese', 'Tamil'], + population: 20966000, + flag: 'https://restcountries.eu/data/lka.svg', + currency: 'Sri Lankan rupee' + }, + { + name: 'Sudan', + capital: 'Khartoum', + languages: ['Arabic', 'English'], + population: 39598700, + flag: 'https://restcountries.eu/data/sdn.svg', + currency: 'Sudanese pound' + }, + { + name: 'Suriname', + capital: 'Paramaribo', + languages: ['Dutch'], + population: 541638, + flag: 'https://restcountries.eu/data/sur.svg', + currency: 'Surinamese dollar' + }, + { + name: 'Svalbard and Jan Mayen', + capital: 'Longyearbyen', + languages: ['Norwegian'], + population: 2562, + flag: 'https://restcountries.eu/data/sjm.svg', + currency: 'Norwegian krone' + }, + { + name: 'Swaziland', + capital: 'Lobamba', + languages: ['English', 'Swati'], + population: 1132657, + flag: 'https://restcountries.eu/data/swz.svg', + currency: 'Swazi lilangeni' + }, + { + name: 'Sweden', + capital: 'Stockholm', + languages: ['Swedish'], + population: 9894888, + flag: 'https://restcountries.eu/data/swe.svg', + currency: 'Swedish krona' + }, + { + name: 'Switzerland', + capital: 'Bern', + languages: ['German', 'French', 'Italian'], + population: 8341600, + flag: 'https://restcountries.eu/data/che.svg', + currency: 'Swiss franc' + }, + { + name: 'Syrian Arab Republic', + capital: 'Damascus', + languages: ['Arabic'], + population: 18564000, + flag: 'https://restcountries.eu/data/syr.svg', + currency: 'Syrian pound' + }, + { + name: 'Taiwan', + capital: 'Taipei', + languages: ['Chinese'], + population: 23503349, + flag: 'https://restcountries.eu/data/twn.svg', + currency: 'New Taiwan dollar' + }, + { + name: 'Tajikistan', + capital: 'Dushanbe', + languages: ['Tajik', 'Russian'], + population: 8593600, + flag: 'https://restcountries.eu/data/tjk.svg', + currency: 'Tajikistani somoni' + }, + { + name: 'Tanzania, United Republic of', + capital: 'Dodoma', + languages: ['Swahili', 'English'], + population: 55155000, + flag: 'https://restcountries.eu/data/tza.svg', + currency: 'Tanzanian shilling' + }, + { + name: 'Thailand', + capital: 'Bangkok', + languages: ['Thai'], + population: 65327652, + flag: 'https://restcountries.eu/data/tha.svg', + currency: 'Thai baht' + }, + { + name: 'Timor-Leste', + capital: 'Dili', + languages: ['Portuguese'], + population: 1167242, + flag: 'https://restcountries.eu/data/tls.svg', + currency: 'United States dollar' + }, + { + name: 'Togo', + capital: 'Lomé', + languages: ['French'], + population: 7143000, + flag: 'https://restcountries.eu/data/tgo.svg', + currency: 'West African CFA franc' + }, + { + name: 'Tokelau', + capital: 'Fakaofo', + languages: ['English'], + population: 1411, + flag: 'https://restcountries.eu/data/tkl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Tonga', + capital: "Nuku'alofa", + languages: ['English', 'Tonga (Tonga Islands)'], + population: 103252, + flag: 'https://restcountries.eu/data/ton.svg', + currency: 'Tongan paʻanga' + }, + { + name: 'Trinidad and Tobago', + capital: 'Port of Spain', + languages: ['English'], + population: 1349667, + flag: 'https://restcountries.eu/data/tto.svg', + currency: 'Trinidad and Tobago dollar' + }, + { + name: 'Tunisia', + capital: 'Tunis', + languages: ['Arabic'], + population: 11154400, + flag: 'https://restcountries.eu/data/tun.svg', + currency: 'Tunisian dinar' + }, + { + name: 'Turkey', + capital: 'Ankara', + languages: ['Turkish'], + population: 78741053, + flag: 'https://restcountries.eu/data/tur.svg', + currency: 'Turkish lira' + }, + { + name: 'Turkmenistan', + capital: 'Ashgabat', + languages: ['Turkmen', 'Russian'], + population: 4751120, + flag: 'https://restcountries.eu/data/tkm.svg', + currency: 'Turkmenistan manat' + }, + { + name: 'Turks and Caicos Islands', + capital: 'Cockburn Town', + languages: ['English'], + population: 31458, + flag: 'https://restcountries.eu/data/tca.svg', + currency: 'United States dollar' + }, + { + name: 'Tuvalu', + capital: 'Funafuti', + languages: ['English'], + population: 10640, + flag: 'https://restcountries.eu/data/tuv.svg', + currency: 'Australian dollar' + }, + { + name: 'Uganda', + capital: 'Kampala', + languages: ['English', 'Swahili'], + population: 33860700, + flag: 'https://restcountries.eu/data/uga.svg', + currency: 'Ugandan shilling' + }, + { + name: 'Ukraine', + capital: 'Kiev', + languages: ['Ukrainian'], + population: 42692393, + flag: 'https://restcountries.eu/data/ukr.svg', + currency: 'Ukrainian hryvnia' + }, + { + name: 'United Arab Emirates', + capital: 'Abu Dhabi', + languages: ['Arabic'], + population: 9856000, + flag: 'https://restcountries.eu/data/are.svg', + currency: 'United Arab Emirates dirham' + }, + { + name: 'United Kingdom of Great Britain and Northern Ireland', + capital: 'London', + languages: ['English'], + population: 65110000, + flag: 'https://restcountries.eu/data/gbr.svg', + currency: 'British pound' + }, + { + name: 'United States of America', + capital: 'Washington, D.C.', + languages: ['English'], + population: 323947000, + flag: 'https://restcountries.eu/data/usa.svg', + currency: 'United States dollar' + }, + { + name: 'Uruguay', + capital: 'Montevideo', + languages: ['Spanish'], + population: 3480222, + flag: 'https://restcountries.eu/data/ury.svg', + currency: 'Uruguayan peso' + }, + { + name: 'Uzbekistan', + capital: 'Tashkent', + languages: ['Uzbek', 'Russian'], + population: 31576400, + flag: 'https://restcountries.eu/data/uzb.svg', + currency: "Uzbekistani so'm" + }, + { + name: 'Vanuatu', + capital: 'Port Vila', + languages: ['Bislama', 'English', 'French'], + population: 277500, + flag: 'https://restcountries.eu/data/vut.svg', + currency: 'Vanuatu vatu' + }, + { + name: 'Venezuela (Bolivarian Republic of)', + capital: 'Caracas', + languages: ['Spanish'], + population: 31028700, + flag: 'https://restcountries.eu/data/ven.svg', + currency: 'Venezuelan bolívar' + }, + { + name: 'Viet Nam', + capital: 'Hanoi', + languages: ['Vietnamese'], + population: 92700000, + flag: 'https://restcountries.eu/data/vnm.svg', + currency: 'Vietnamese đồng' + }, + { + name: 'Wallis and Futuna', + capital: 'Mata-Utu', + languages: ['French'], + population: 11750, + flag: 'https://restcountries.eu/data/wlf.svg', + currency: 'CFP franc' + }, + { + name: 'Western Sahara', + capital: 'El Aaiún', + languages: ['Spanish'], + population: 510713, + flag: 'https://restcountries.eu/data/esh.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Yemen', + capital: "Sana'a", + languages: ['Arabic'], + population: 27478000, + flag: 'https://restcountries.eu/data/yem.svg', + currency: 'Yemeni rial' + }, + { + name: 'Zambia', + capital: 'Lusaka', + languages: ['English'], + population: 15933883, + flag: 'https://restcountries.eu/data/zmb.svg', + currency: 'Zambian kwacha' + }, + { + name: 'Zimbabwe', + capital: 'Harare', + languages: ['English', 'Shona', 'Northern Ndebele'], + population: 14240168, + flag: 'https://restcountries.eu/data/zwe.svg', + currency: 'Botswana pula' + } +] diff --git a/14_Day/14_day_starter/index.html b/14_Day/14_day_starter/index.html new file mode 100644 index 0000000..b5aa290 --- /dev/null +++ b/14_Day/14_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:12 Day + + + +

30DaysOfJavaScript:14 Day

+

DOM

+ + + + + + + \ No newline at end of file diff --git a/14_Day/14_day_starter/scripts/main.js b/14_Day/14_day_starter/scripts/main.js new file mode 100644 index 0000000..c6045c8 --- /dev/null +++ b/14_Day/14_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file From ac2ff0daf8a9470648fbc36384e3a07ef170cf7f Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Wed, 15 Jan 2020 01:08:40 +0200 Subject: [PATCH 07/21] day 14 --- 10_Day/10_day_Set_and_Map.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/10_Day/10_day_Set_and_Map.md b/10_Day/10_day_Set_and_Map.md index ed0f3ea..69dfa14 100644 --- a/10_Day/10_day_Set_and_Map.md +++ b/10_Day/10_day_Set_and_Map.md @@ -13,7 +13,7 @@
-[<< Day 9](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_higher_order_functions.md) | [Day 11>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/11_Day/11_destructuring_and_spread.md) +[<< Day 9](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_higher_order_functions.md) | [Day 11>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/11_Day/11_day_destructuring_and_spread.md) ![Day 10](../images/banners/day_1_10.png) @@ -438,4 +438,4 @@ const countries = ['Finland', 'Sweden', 'Norway'] 🎉 CONGRATULATIONS ! 🎉 -[<< Day 9](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_higher_order_functions.md) | [Day 11>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/11_Day/11_destructuring_and_spread.md) +[<< Day 9](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_higher_order_functions.md) | [Day 11>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/11_Day/11_day_destructuring_and_spread.md) From a47f48f23ea701e9e998f3ce16d1d84eb8db169b Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Wed, 15 Jan 2020 01:15:06 +0200 Subject: [PATCH 08/21] day 14 --- 03_Day/03_booleans_operators_date.md | 4 +- 11_Day/11_day_destructuring_and_spread.md | 4 +- 13_Day/13_day_console_object_methods.md | 217 ++++++++++++---------- 3 files changed, 123 insertions(+), 102 deletions(-) diff --git a/03_Day/03_booleans_operators_date.md b/03_Day/03_booleans_operators_date.md index d4a890d..b080789 100644 --- a/03_Day/03_booleans_operators_date.md +++ b/03_Day/03_booleans_operators_date.md @@ -64,8 +64,8 @@ let isLightOn = true let isRaining = false let isHungry = false let isMarried = true -let truValue = 4 > 3 // true -let falseValue = 3 < 4 // false +let truValue = 4 > 3 // true +let falseValue = 4 < 3 // false ``` We agreed that boolean values are either true or false. diff --git a/11_Day/11_day_destructuring_and_spread.md b/11_Day/11_day_destructuring_and_spread.md index 44bf4ff..60234bd 100644 --- a/11_Day/11_day_destructuring_and_spread.md +++ b/11_Day/11_day_destructuring_and_spread.md @@ -13,7 +13,7 @@ -[<< Day 10](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_Set_and_Map.md) | [Day 12>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) +[<< Day 10](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/10_Day/10_day_Set_and_Map.md) | [Day 12>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) ![Day 11](../images/banners/day_1_11.png) @@ -691,4 +691,4 @@ const users = [ ``` 🎉 CONGRATULATIONS ! 🎉 -[<< Day 10](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/09_Day/09_day_Set_and_Map.md) | [Day 12>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) \ No newline at end of file +[<< Day 10](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/10_Day/10_day_Set_and_Map.md) | [Day 12>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) \ No newline at end of file diff --git a/13_Day/13_day_console_object_methods.md b/13_Day/13_day_console_object_methods.md index 6026bd5..a0fa493 100644 --- a/13_Day/13_day_console_object_methods.md +++ b/13_Day/13_day_console_object_methods.md @@ -7,15 +7,17 @@ Twitter Follow - Author: - Asabeneh Yetayeh
- January, 2020 -
+Author: +Asabeneh Yetayeh
+ January, 2020 +
+ -[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](#) +[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_error_handling.md) ![Thirty Days Of JavaScript](../images/banners/day_1_13.png) + - [Day 13](#day-13) - [Console Object Methods](#console-object-methods) - [console.log()](#consolelog) @@ -39,16 +41,16 @@ In this section, we will cover about console and console object methods. Absolute beginners usually do not know which to use: console.log(), document.write() or document.getElementById. -We use console object methods to show output on the browser console and we use document.write to show output on the browser document(view port). Both methods used only for testing and debugging purposes. The console method is the most popular testing and debugging tool on the browser. We use document.getElementById() when we like to interact with DOM try using JavaScript. We will cover DOM in another section. +We use console object methods to show output on the browser console and we use document.write to show output on the browser document(view port). Both methods used only for testing and debugging purposes. The console method is the most popular testing and debugging tool on the browser. We use document.getElementById() when we like to interact with DOM try using JavaScript. We will cover DOM in another section. -In addition to the famous, console.log() method, the console provides other more methods methods. +In addition to the famous, console.log() method, the console provides other more methods methods. ### console.log() We use console.log() to show output on the browser console. We can substitute values and also we can style the logging out put using %c. - Showing output on browser console - + ```js console.log('30 Days of JavaScript') ``` @@ -72,17 +74,26 @@ console.log('%d %s of JavaScript', 30, 'Days') We can style logging message using css. Copy the following code and paste it on browser console to see the result. ```js -console.log('%c30 Days Of JavaScript','color:green') // log output is green -console.log('%c30 Days%c %cOf%c %cJavaScript%c','color:green','', 'color:red', '', 'color:yellow') // log output green red and yellow text +console.log('%c30 Days Of JavaScript', 'color:green') // log output is green +console.log( + '%c30 Days%c %cOf%c %cJavaScript%c', + 'color:green', + '', + 'color:red', + '', + 'color:yellow' +) // log output green red and yellow text ``` ### console.warn() -We use console.warn() to give warning on browser. For instance to inform or warn deprecation of version of a package or bad practices. Copy the following code and paste it on browser console to see warning messages. +We use console.warn() to give warning on browser. For instance to inform or warn deprecation of version of a package or bad practices. Copy the following code and paste it on browser console to see warning messages. ```js console.warn('This is a warning') -console.warn('You are using React. Do not touch the DOM. Virtual DOM will take care of handling the DOM!') +console.warn( + 'You are using React. Do not touch the DOM. Virtual DOM will take care of handling the DOM!' +) console.warn('Warning is different from error') ``` @@ -110,11 +121,11 @@ Let us also check the result of an object. This creates table with two columns:a ```js const user = { - name:'Asabeneh', - title:'Programmer', - country:'Finland', - city:'Helsinki', -age:250 + name: 'Asabeneh', + title: 'Programmer', + country: 'Finland', + city: 'Helsinki', + age: 250 } console.table(user) ``` @@ -122,65 +133,73 @@ console.table(user) Check the rest of the examples by copying and paste on the browser console. ```js -const countries = [['Finland', 'Helsinki'], ['Sweden', 'Stockholm'], ['Norway', 'Oslo']] +const countries = [ + ['Finland', 'Helsinki'], + ['Sweden', 'Stockholm'], + ['Norway', 'Oslo'] +] console.table(countries) ``` ```js const users = [ -{ - name:'Asabeneh', - title:'Programmer', - country:'Finland', - city:'Helsinki', - age:250 -}, -{ - name:'Eyob', - title:'Teacher', - country:'Sweden', - city:'London', - age:25 -}, -{ - name:'Asab', - title:'Instructor', - country:'Norway', - city:'Oslo', - age:22 -}, -{ - name:'Matias', - title:'Developer', - country:'Denmark', - city:'Copenhagen', - age:28 -} + { + name: 'Asabeneh', + title: 'Programmer', + country: 'Finland', + city: 'Helsinki', + age: 250 + }, + { + name: 'Eyob', + title: 'Teacher', + country: 'Sweden', + city: 'London', + age: 25 + }, + { + name: 'Asab', + title: 'Instructor', + country: 'Norway', + city: 'Oslo', + age: 22 + }, + { + name: 'Matias', + title: 'Developer', + country: 'Denmark', + city: 'Copenhagen', + age: 28 + } ] console.table(users) ``` ### console.time() + Starts a timer you can use to track how long an operation takes. You give each timer a unique name, and may have up to 10,000 timers running on a given page. When you call console.timeEnd() with the same name, the browser will output the time, in milliseconds, that elapsed since the timer was started. ```js -const countries = [['Finland', 'Helsinki'], ['Sweden', 'Stockholm'], ['Norway', 'Oslo']] +const countries = [ + ['Finland', 'Helsinki'], + ['Sweden', 'Stockholm'], + ['Norway', 'Oslo'] +] console.time('Regular for loop') -for(let i = 0; i < countries.length; i++) { - console.log(countries[i][0], countries[i][1]) - +for (let i = 0; i < countries.length; i++) { + console.log(countries[i][0], countries[i][1]) } console.timeEnd('Regular for loop') console.time('for of loop') -for(const [name, city] of countries) { +for (const [name, city] of countries) { console.log(name, city) } console.timeEnd('for of loop') console.time('forEach loop') -countries.forEach(([name, city])=> { +countries.forEach(([name, city]) => { console.log(name, city) }) console.timeEnd('forEach loop') @@ -222,9 +241,9 @@ console.assert(4 > 3, '4 is greater than 3') // no result console.assert(3 > 4, '3 is not greater than 4') // Assertion failed: 3 is not greater than 4 for (let i = 0; i <= 10; i += 1) { - let errorMessage = `${i} is not even`; - console.log('the # is ' + i); - console.assert(i % 2 === 0, {number: i, errorMessage: errorMessage}) + let errorMessage = `${i} is not even` + console.log('the # is ' + i) + console.assert(i % 2 === 0, { number: i, errorMessage: errorMessage }) } ``` @@ -234,43 +253,47 @@ The console.group() can help to group different log groups. Copy the following c ```js const names = ['Asabeneh', 'Brook', 'David', 'John'] -const countries = [['Finland', 'Helsinki'], ['Sweden', 'Stockholm'], ['Norway', 'Oslo']] +const countries = [ + ['Finland', 'Helsinki'], + ['Sweden', 'Stockholm'], + ['Norway', 'Oslo'] +] const user = { - name:'Asabeneh', - title:'Programmer', - country:'Finland', - city:'Helsinki', -age:250 + name: 'Asabeneh', + title: 'Programmer', + country: 'Finland', + city: 'Helsinki', + age: 250 } const users = [ -{ - name:'Asabeneh', - title:'Programmer', - country:'Finland', - city:'Helsinki', - age:250 -}, -{ - name:'Eyob', - title:'Teacher', - country:'Sweden', - city:'London', - age:25 -}, -{ - name:'Asab', - title:'Instructor', - country:'Norway', - city:'Oslo', - age:22 -}, -{ - name:'Matias', - title:'Developer', - country:'Denmark', - city:'Copenhagen', - age:28 -} + { + name: 'Asabeneh', + title: 'Programmer', + country: 'Finland', + city: 'Helsinki', + age: 250 + }, + { + name: 'Eyob', + title: 'Teacher', + country: 'Sweden', + city: 'London', + age: 25 + }, + { + name: 'Asab', + title: 'Instructor', + country: 'Norway', + city: 'Oslo', + age: 22 + }, + { + name: 'Matias', + title: 'Developer', + country: 'Denmark', + city: 'Copenhagen', + age: 28 + } ] console.group('Names') @@ -285,7 +308,6 @@ console.group('Users') console.log(user) console.log(users) console.groupEnd() - ``` ### console.count() @@ -294,7 +316,7 @@ It prints the number of time this console.count() is called. It takes a string l ```js const func = () => { - console.count('Function has been called') + console.count('Function has been called') } func() func() @@ -311,19 +333,19 @@ Function has been called: 3 The console.clear() cleans the browser console. -🌕 Keep up the good work. Keep pushing, the sky is the limit! You have just completed day 13 challenges and you are 13 steps a head in to your way to greatness. Now do some exercises for your brain and for your muscle. +🌕 Keep up the good work. Keep pushing, the sky is the limit! You have just completed day 13 challenges and you are 13 steps a head in to your way to greatness. Now do some exercises for your brain and for your muscle. ## Exercises ### Exercises:Level 1 - 1. Display the countries array as a table - 2. Display the countries object as a table - 3. Use console.group() to group logs +1. Display the countries array as a table +2. Display the countries object as a table +3. Use console.group() to group logs ### Exercises:Level 2 -1. 10 > 2 * 10 use console.assert() +1. 10 > 2 \* 10 use console.assert() 2. Write a warning message using console.warn() 3. Write an error message using console.error() @@ -331,7 +353,6 @@ The console.clear() cleans the browser console. 1. Check the speed difference among the following loops: while, for, for of, forEach - 🎉 CONGRATULATIONS ! 🎉 -[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](#) \ No newline at end of file +[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_error_handling.md) From b0fbeeccd1ea9969ecdd63e80eacf00aaf07af3b Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Wed, 15 Jan 2020 01:16:52 +0200 Subject: [PATCH 09/21] day 14 --- 13_Day/13_day_console_object_methods.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/13_Day/13_day_console_object_methods.md b/13_Day/13_day_console_object_methods.md index a0fa493..01ba349 100644 --- a/13_Day/13_day_console_object_methods.md +++ b/13_Day/13_day_console_object_methods.md @@ -14,7 +14,7 @@ -[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_error_handling.md) +[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/14_Day/14_day_error_handling.md) ![Thirty Days Of JavaScript](../images/banners/day_1_13.png) @@ -355,4 +355,4 @@ The console.clear() cleans the browser console. 🎉 CONGRATULATIONS ! 🎉 -[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_error_handling.md) +[<< Day 12](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/12_Day/12_day_regular_expressions.md) | [Day 14>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/14_Day/14_day_error_handling.md) From 868322659deb26d2cd7735fa61c8fb22acc4e01d Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Wed, 15 Jan 2020 01:17:59 +0200 Subject: [PATCH 10/21] day 14 --- 14_Day/14_day_error_handling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/14_Day/14_day_error_handling.md b/14_Day/14_day_error_handling.md index 6c6b3cd..3d40c67 100644 --- a/14_Day/14_day_error_handling.md +++ b/14_Day/14_day_error_handling.md @@ -16,7 +16,7 @@ [<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](#) -![Thirty Days Of JavaScript](../images/banners/day_1_15.png) +![Thirty Days Of JavaScript](../images/banners/day_1_14.png) - [Day 14](#day-14) - [Error Handling](#error-handling) From 0a55a7db096d5dd46388336086bb0e123ea747d1 Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Thu, 16 Jan 2020 00:50:11 +0200 Subject: [PATCH 11/21] day 15 --- .gitignore | 5 +- 14_Day/14_day_error_handling.md | 4 +- 15_Day/15_day_classes.md | 716 +++++++ 15_Day/15_day_starter/data/countries_data.js | 2013 ++++++++++++++++++ 15_Day/15_day_starter/index.html | 17 + 15_Day/15_day_starter/scripts/main.js | 105 + 6 files changed, 2856 insertions(+), 4 deletions(-) create mode 100644 15_Day/15_day_classes.md create mode 100644 15_Day/15_day_starter/data/countries_data.js create mode 100644 15_Day/15_day_starter/index.html create mode 100644 15_Day/15_day_starter/scripts/main.js diff --git a/.gitignore b/.gitignore index 81ca29f..6926acd 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ day9.md day10.md 01_02_03_days_backup.md test.md -15_Day + 16_Day 17_Day 18_Day @@ -30,4 +30,5 @@ test.md 28_Day 29_Day 30_Day -test.html \ No newline at end of file +test.html +res.js \ No newline at end of file diff --git a/14_Day/14_day_error_handling.md b/14_Day/14_day_error_handling.md index 3d40c67..f60da42 100644 --- a/14_Day/14_day_error_handling.md +++ b/14_Day/14_day_error_handling.md @@ -14,7 +14,7 @@ -[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](#) +[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_15_classes.md) ![Thirty Days Of JavaScript](../images/banners/day_1_14.png) @@ -190,4 +190,4 @@ Practice 🎉 CONGRATULATIONS ! 🎉 -[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](#) +[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_15_classes.md) diff --git a/15_Day/15_day_classes.md b/15_Day/15_day_classes.md new file mode 100644 index 0000000..908d192 --- /dev/null +++ b/15_Day/15_day_classes.md @@ -0,0 +1,716 @@ +
+

30 Days Of JavaScript

+ + + + + Twitter Follow + + +Author: +Asabeneh Yetayeh
+ January, 2020 +
+ +
+ +[<< Day 14](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/14_Day/14_day_error_handling.md) | [Day 16>>](#) + +![Thirty Days Of JavaScript](../images/banners/day_1_15.png) + +- [Day 15](#day-15) + - [Classes](#classes) + - [Defining a classes](#defining-a-classes) + - [Class Instantiation](#class-instantiation) + - [Class Constructor](#class-constructor) + - [Default values with constructor](#default-values-with-constructor) + - [Class methods](#class-methods) + - [Properties with initial value](#properties-with-initial-value) + - [getter](#getter) + - [setter](#setter) + - [Static method](#static-method) + - [Inheritance](#inheritance) + - [Overriding methods](#overriding-methods) + - [Exercises](#exercises) + - [Exercises Level 1](#exercises-level-1) + - [Exercises Level 2](#exercises-level-2) + - [Exercises Level 3](#exercises-level-3) +# Day 15 + +## Classes + +JavaScript is an object oriented programming language. Everything in JavScript is an object, with its properties and methods. We create class to create an object. A Class is like an object constructor, or a "blueprint" for creating objects. We instantiate a class to create an object. The class defines attributes and the behavior of the object, while the object, on the other hand, represents the class. + +Once we create a class we can create object from it whenever we want. Creating an object from a class is called class instantiation. + +In the object section, we saw how to create an object literal. Object literal is a singleton. If we want to get a similar object , we have to write it. However, class allows to create many objects. This helps to reduce amount of code and repetition of code. + +### Defining a classes + +To define a class in JavaScript we need the keyword _class_ , the name of a class in **CamelCase** and block code(two curly brackets). Let us create a class name Person. + +```sh +// syntax +class ClassName { + // code goes here +} + +``` + +**Example:** + +```js +class Person { + // code goes here +} +``` + +We have created an Person class but it does not have any thing inside. + +### Class Instantiation + +Instantiation class means creating an object from a class. We need the keyword _new_ and we call the name of the class after the word new. + +Let us create a dog object from our Person class. + +```js +class Person { + // code goes here +} +const person = new Person() +console.log(person) +``` + +```sh +Person {} +``` + +As you can see, we have created a person object. Since the class did not have any properties yet the object is also empty. + +Let use the class constructor to pass different properties for the class. + +### Class Constructor + +The constructor is a builtin function which allows as to create a blueprint for our object. The constructor function starts with a keyword constructor followed by a parenthesis. Inside the parenthesis we pass the properties of the object as parameter. We use the _this_ keyword to attach the constructor parameters with the class. + +The following Person class constructor has firstName and lastName property. These properties are attached to the Person class using _this_ keyword. _This_ refers to the class itself. + +```js +class Person { + constructor(firstName, lastName) { + console.log(this) // Check the output from here + this.firstName = firstName + this.lastName = lastName + } +} + +const person = new Person() + +console.log(person) +``` + +```sh +Person {firstName: undefined, lastName} +``` + +All the keys of the object are undefined. When ever we instantiate we should pass the value of the properties. Let us pass value at this time when we instantiate the class. + +```js +class Person { + constructor(firstName, lastName) { + this.firstName = firstName + this.lastName = lastName + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh') + +console.log(person1) +``` + +```sh +Person {firstName: "Asabeneh", lastName: "Yetayeh"} +``` + +As we have stated at the very beginning that once we create a class we can create many object using the class. Now, let us create many person objects using the Person class. + +```js +class Person { + constructor(firstName, lastName) { + console.log(this) // Check the output from here + this.firstName = firstName + this.lastName = lastName + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh') +const person2 = new Person('Lidiya', 'Tekle') +const person3 = new Person('Abraham', 'Yetayeh') + +console.log(person1) +console.log(person2) +console.log(person3) +``` + +```sh +Person {firstName: "Asabeneh", lastName: "Yetayeh"} +Person {firstName: "Lidiya", lastName: "Tekle"} +Person {firstName: "Abraham", lastName: "Yetayeh"} +``` + +Using the class Person we created three persons object. As you can see our class did not many properties let us add more properties to the class. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + console.log(this) // Check the output from here + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') + +console.log(person1) +``` + +```sh +Person {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki"} +``` + +### Default values with constructor + +The constructor function properties may have a default value like other regular functions. + +```js +class Person { + constructor( + firstName = 'Asabeneh', + lastName = 'Yetayeh', + age = 250, + country = 'Finland', + city = 'Helsinki' + ) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + } +} + +const person1 = new Person() // it will take the default values +const person1 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +console.log(person1) +``` + +```sh +Person {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki"} +Person {firstName: "Lidiya", lastName: "Tekle", age: 28, country: "Finland", city: "Espoo"} +``` + +### Class methods + +The constructor inside a class is a builtin function which allow us to create a blueprint for the object. In a class we can create class methods. Methods are JavaScript functions inside the class. Let us create some class methods. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +console.log(person1.getFullName()) +console.log(person2.getFullName()) +``` + +```sh +Asabeneh Yetayeh +test.js:19 Lidiya Tekle +``` + +### Properties with initial value + +When we create a class for some properties we may have an initial value. For instance if you are playing a game, you starting score will be zero. So, we may have a starting score or score which is zero. In other way, we may have an initial skill and we will acquire some skill after some time. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +console.log(person1.score) +console.log(person2.score) + +console.log(person1.skills) +console.log(person2.skills) +``` + +```sh +0 +0 +[] +[] +``` + +A method could be regular method or a getter or a setter. Let us see, getter and setter. + +### getter + +The get method allow us to access value from the object. We write a get method using keyword _get_ followed by a function. Instead of accessing properties directly from the object we use getter to get the value. See the example bellow + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } + get getscore() { + return this.score + } + get getSkills() { + return this.skills + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +console.log(person1.getScore) // We do not need parenthesis to call a getter method +console.log(person2.getScore) + +console.log(person1.getSkills) +console.log(person2.getSkills) +``` + +```sh +0 +0 +[] +[] +``` + +### setter + +The setter method allow us to modify the value of certain properties. We write a setter method using keyword _set_ followed by a function. See the example bellow. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } + get getScore() { + return this.score + } + get getSkills() { + return this.skills + } + set setScore(score) { + this.score += score + } + set setSkill(skill) { + this.skills.push(skill) + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') + +person1.setScore = 1 +person1.setSkill = 'HTML' +person1.setSkill = 'CSS' +person1.setSkill = 'JavaScript' + +person2.setScore = 1 +person2.setSkill = 'Planning' +person2.setSkill = 'Managing' +person2.setSkill = 'Organizing' + +console.log(person1.score) +console.log(person2.score) + +console.log(person1.skills) +console.log(person2.skills) +``` + +```sh +1 +1 +["HTML", "CSS", "JavaScript"] +["Planning", "Managing", "Organizing"] +``` + +Do not be puzzled by the difference between regular method and a getter. If you know how to make a regular method you are good. Let us add regular method called getPersonInfo in the Person class. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } + get getScore() { + return this.score + } + get getSkills() { + return this.skills + } + set setScore(score) { + this.score += score + } + set setSkill(skill) { + this.skills.push(skill) + } + getPersonInfo() { + let fullName = this.getFullName() + let skills = + this.skills.length > 0 && + this.skills.slice(0, this.skills.length - 1).join(', ') + + ` and ${this.skills[this.skills.length - 1]}` + let formattedSkills = skills ? `He knows ${skills}` : '' + + let info = `${fullName} is ${this.age}. He lives ${this.city}, ${this.country}. ${formattedSkills}` + return info + } +} + +const person1 = new Person('Asabeneh', 'Yetayeh', 250, 'Finland', 'Helsinki') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') +const person3 = new Person('John', 'Doe', 50, 'Mars', 'Mars city') + +person1.setScore = 1 +person1.setSkill = 'HTML' +person1.setSkill = 'CSS' +person1.setSkill = 'JavaScript' + +person2.setScore = 1 +person2.setSkill = 'Planning' +person2.setSkill = 'Managing' +person2.setSkill = 'Organizing' + +console.log(person1.getScore) +console.log(person2.getScore) + +console.log(person1.getSkills) +console.log(person2.getSkills) +console.log(person3.getSkills) + +console.log(person1.getPersonInfo()) +console.log(person2.getPersonInfo()) +console.log(person3.getPersonInfo()) +``` + +```sh +1 +1 +["HTML", "CSS", "JavaScript"] +["Planning", "Managing", "Organizing"] +[] +Asabeneh Yetayeh is 250. He lives Helsinki, Finland. He knows HTML, CSS and JavaScript +Lidiya Tekle is 28. He lives Espoo, Finland. He knows Planning, Managing and Organizing +John Doe is 50. He lives Mars city, Mars. +``` + +### Static method + +The static keyword defines a static method for a class. Static methods are not called on instances of the class. Instead, they are called on the class itself. These are often utility functions, such as functions to create or clone objects. An example of static method is _Date.now()_. The _now_ method is called directly from the class. + +```js +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } + get getScore() { + return this.score + } + get getSkills() { + return this.skills + } + set setScore(score) { + this.score += score + } + set setSkill(skill) { + this.skills.push(skill) + } + getPersonInfo() { + let fullName = this.getFullName() + let skills = + this.skills.length > 0 && + this.skills.slice(0, this.skills.length - 1).join(', ') + + ` and ${this.skills[this.skills.length - 1]}` + + let formattedSkills = skills ? `He knows ${skills}` : '' + + let info = `${fullName} is ${this.age}. He lives ${this.city}, ${this.country}. ${formattedSkills}` + console.log(this) + return info + } + static favoriteSkill() { + const skills = ['HTML', 'CSS', 'JS', 'React', 'Python', 'Node'] + const index = Math.floor(Math.random() * skills.length) + console.log('hi') + return skills[index] + } + static showDateTime() { + let now = new Date() + let year = now.getFullYear() + let month = now.getMonth() + 1 + let date = now.getDate() + let hours = now.getHours() + let minutes = now.getMinutes() + if (hours < 10) { + hours = '0' + hours + } + if (minutes < 10) { + minutes = '0' + minutes + } + + let dateMonthYear = date + '.' + month + '.' + year + let time = hours + ':' + minutes + let fullTime = dateMonthYear + ' ' + time + return fullTime + } +} + +console.log(Person.favoriteSkill()) +console.log(Person.showDateTime()) +``` + +```sh +Node +15.1.2020 23:56 +``` + +The static methods are methods which can be used as utility functions. + +## Inheritance + +Using inheritance we can access all the properties and the methods of the parent class. This reduces repetition of code. If you remember, we have a Person parent class and we will create children from it. Our children class could be student, teach etc. + +```js +// syntax +class ChildClassName extends { + // code goes here +} +``` + +Let us create a Student child class from Person parent class. + +```js +class Student extends Person { + saySomething() { + console.log('I am a child of the person class') + } +} + +const s1 = new Student('Asabeneh', 'Yetayeh', 'Finland', 250, 'Helsinki') +console.log(s1) +console.log(s1.saySomething()) +console.log(s1.getFullName()) +console.log(s1.getPersonInfo()) +``` + +```sh +Student {firstName: "Asabeneh", lastName: "Yetayeh", age: "Finland", country: 250, city: "Helsinki", …} +I am a child of the person class +Asabeneh Yetayeh +Student {firstName: "Asabeneh", lastName: "Yetayeh", age: "Finland", country: 250, city: "Helsinki", …} +Asabeneh Yetayeh is Finland. He lives Helsinki, 250. +``` + +### Overriding methods + +As you can see, we manage to access all the methods in the Person Class and we used it in the Student child class. We can customize the parent methods, we can add additional properties to a child class. If we want to customize, the methods and if we want to add extra properties, we need to use the constructor function the child class too. In side the constructor function we call the super() function to access all the properties from the parent class. The Person class didn't have gender but now let us give gender property for the child class, Student. If the same method name used in the child class, the parent method will be overridden. + +```js +class Student extends Person { + constructor(firstName, lastName, age, country, city, gender) { + super(firstName, lastName, age, country, city) + this.gender = gender + } + + saySomething() { + console.log('I am a child of the person class') + } + getPersonInfo() { + let fullName = this.getFullName() + let skills = + this.skills.length > 0 && + this.skills.slice(0, this.skills.length - 1).join(', ') + + ` and ${this.skills[this.skills.length - 1]}` + + let formattedSkills = skills ? `He knows ${skills}` : '' + let pronoun = this.gender == 'Male' ? 'He' : 'She' + + let info = `${fullName} is ${this.age}. ${pronoun} lives in ${this.city}, ${this.country}. ${formattedSkills}` + console.log(this) + return info + } +} + +const s1 = new Student( + 'Asabeneh', + 'Yetayeh', + 250, + 'Finland', + 'Helsinki', + 'Male' +) +const s2 = new Student('Lidiya', 'Tekle', 28, 'Finland', 'Helsinki', 'Female') +s1.setScore = 1 +s1.setSkill = 'HTML' +s1.setSkill = 'CSS' +s1.setSkill = 'JavaScript' + +s2.setScore = 1 +s2.setSkill = 'Planning' +s2.setSkill = 'Managing' +s2.setSkill = 'Organizing' + +console.log(s1) + +console.log(s1.saySomething()) +console.log(s1.getFullName()) +console.log(s1.getPersonInfo()) + +console.log(s2.saySomething()) +console.log(s2.getFullName()) +console.log(s2.getPersonInfo()) +``` + +```sh +Student {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki", …} +Student {firstName: "Lidiya", lastName: "Tekle", age: 28, country: "Finland", city: "Helsinki", …} +I am a child of the person class +Asabeneh Yetayeh +Student {firstName: "Asabeneh", lastName: "Yetayeh", age: 250, country: "Finland", city: "Helsinki", …} +Asabeneh Yetayeh is 250. He lives in Helsinki, Finland. He knows HTML, CSS and JavaScript +I am a child of the person class +Lidiya Tekle +Student {firstName: "Lidiya", lastName: "Tekle", age: 28, country: "Finland", city: "Helsinki", …} +Lidiya Tekle is 28. She lives in Helsinki, Finland. He knows Planning, Managing and Organizing +``` + +Now, the getPersonInfo method has been overridden and it identifies if the person is male or female. + +🌕 You are excelling. Now, you knew class and you have the power to turn everything to an object. You made it to half way to your way to greatness. Now do some exercises for your brain and for your muscle. + +## Exercises + +### Exercises Level 1 + +1. Create an Animal class. The class will have name, age, color, legs properties and create different methods +2. Create a Dog and Cat child class from the Animal Class. + +### Exercises Level 2 + +1. Override the method you create in Animal class + +### Exercises Level 3 + +1. Let's try to develop a program which calculate measure of central tendency of a sample(mean, median, mode) and measure of variability(range, variance, standard deviation). In addition to those measures find the min, max, count, percentile, and frequency distribution of the sample. You can create a class called Statistics and create all the functions which do statistical calculations as method for the Statistics class. Check the output below. + +```JS +ages = [31, 26, 34, 37, 27, 26, 32, 32, 26, 27, 27, 24, 32, 33, 27, 25, 26, 38, 37, 31, 34, 24, 33, 29, 26] + +console.log('Count:', statistics.count()) # 25 +console.log('Sum: ', statistics.sum()) # 744 +console.log('Min: ', statistics.min()) # 24 +console.log('Max: ', statistics.max()) # 38 +console.log('Range: ', statistics.range() # 14 +console.log('Mean: ', statistics.mean()) # 30 +console.log('Median: ',statistics.median()) # 29 +console.log('Mode: ', statistics.mode()) # {'mode': 26, 'count': 5} +console.log('Variance: ',statistics.var()) # 17.5 +console.log('Standard Deviation: ', statistics.std()) # 4.2 +console.log('Variance: ',statistics.var()) # 17.5 +console.log('Frequency Distribution: ',statistics.freqDist()) # [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] +``` + +```sh +// you output should look like this +console.log(statistics.describe()) +Count: 25 +Sum: 744 +Min: 24 +Max: 38 +Range: 14 +Mean: 30 +Median: 29 +Mode: (26, 5) +Variance: 17.5 +Standard Deviation: 4.2 +Frequency Distribution: [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] +``` + +1. Create a class called PersonAccount. It has firstname, lastname, incomes, expenses properties and it has total_income, total_expense, account_info,add_income, add_expense and account_balance methods. Incomes is a set of incomes and its description and the same goes for expenses. + +🎉 CONGRATULATIONS ! 🎉 + +[<< Day 14](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/14_Day/14_day_error_handling.md) | [Day 16>>](#) \ No newline at end of file diff --git a/15_Day/15_day_starter/data/countries_data.js b/15_Day/15_day_starter/data/countries_data.js new file mode 100644 index 0000000..92acddd --- /dev/null +++ b/15_Day/15_day_starter/data/countries_data.js @@ -0,0 +1,2013 @@ +const countries = [ + { + name: 'Afghanistan', + capital: 'Kabul', + languages: ['Pashto', 'Uzbek', 'Turkmen'], + population: 27657145, + flag: 'https://restcountries.eu/data/afg.svg', + currency: 'Afghan afghani' + }, + { + name: 'Åland Islands', + capital: 'Mariehamn', + languages: ['Swedish'], + population: 28875, + flag: 'https://restcountries.eu/data/ala.svg', + currency: 'Euro' + }, + { + name: 'Albania', + capital: 'Tirana', + languages: ['Albanian'], + population: 2886026, + flag: 'https://restcountries.eu/data/alb.svg', + currency: 'Albanian lek' + }, + { + name: 'Algeria', + capital: 'Algiers', + languages: ['Arabic'], + population: 40400000, + flag: 'https://restcountries.eu/data/dza.svg', + currency: 'Algerian dinar' + }, + { + name: 'American Samoa', + capital: 'Pago Pago', + languages: ['English', 'Samoan'], + population: 57100, + flag: 'https://restcountries.eu/data/asm.svg', + currency: 'United State Dollar' + }, + { + name: 'Andorra', + capital: 'Andorra la Vella', + languages: ['Catalan'], + population: 78014, + flag: 'https://restcountries.eu/data/and.svg', + currency: 'Euro' + }, + { + name: 'Angola', + capital: 'Luanda', + languages: ['Portuguese'], + population: 25868000, + flag: 'https://restcountries.eu/data/ago.svg', + currency: 'Angolan kwanza' + }, + { + name: 'Anguilla', + capital: 'The Valley', + languages: ['English'], + population: 13452, + flag: 'https://restcountries.eu/data/aia.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Antarctica', + capital: '', + languages: ['English', 'Russian'], + population: 1000, + flag: 'https://restcountries.eu/data/ata.svg', + currency: 'Australian dollar' + }, + { + name: 'Antigua and Barbuda', + capital: "Saint John's", + languages: ['English'], + population: 86295, + flag: 'https://restcountries.eu/data/atg.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Argentina', + capital: 'Buenos Aires', + languages: ['Spanish', 'Guaraní'], + population: 43590400, + flag: 'https://restcountries.eu/data/arg.svg', + currency: 'Argentine peso' + }, + { + name: 'Armenia', + capital: 'Yerevan', + languages: ['Armenian', 'Russian'], + population: 2994400, + flag: 'https://restcountries.eu/data/arm.svg', + currency: 'Armenian dram' + }, + { + name: 'Aruba', + capital: 'Oranjestad', + languages: ['Dutch', '(Eastern) Punjabi'], + population: 107394, + flag: 'https://restcountries.eu/data/abw.svg', + currency: 'Aruban florin' + }, + { + name: 'Australia', + capital: 'Canberra', + languages: ['English'], + population: 24117360, + flag: 'https://restcountries.eu/data/aus.svg', + currency: 'Australian dollar' + }, + { + name: 'Austria', + capital: 'Vienna', + languages: ['German'], + population: 8725931, + flag: 'https://restcountries.eu/data/aut.svg', + currency: 'Euro' + }, + { + name: 'Azerbaijan', + capital: 'Baku', + languages: ['Azerbaijani'], + population: 9730500, + flag: 'https://restcountries.eu/data/aze.svg', + currency: 'Azerbaijani manat' + }, + { + name: 'Bahamas', + capital: 'Nassau', + languages: ['English'], + population: 378040, + flag: 'https://restcountries.eu/data/bhs.svg', + currency: 'Bahamian dollar' + }, + { + name: 'Bahrain', + capital: 'Manama', + languages: ['Arabic'], + population: 1404900, + flag: 'https://restcountries.eu/data/bhr.svg', + currency: 'Bahraini dinar' + }, + { + name: 'Bangladesh', + capital: 'Dhaka', + languages: ['Bengali'], + population: 161006790, + flag: 'https://restcountries.eu/data/bgd.svg', + currency: 'Bangladeshi taka' + }, + { + name: 'Barbados', + capital: 'Bridgetown', + languages: ['English'], + population: 285000, + flag: 'https://restcountries.eu/data/brb.svg', + currency: 'Barbadian dollar' + }, + { + name: 'Belarus', + capital: 'Minsk', + languages: ['Belarusian', 'Russian'], + population: 9498700, + flag: 'https://restcountries.eu/data/blr.svg', + currency: 'New Belarusian ruble' + }, + { + name: 'Belgium', + capital: 'Brussels', + languages: ['Dutch', 'French', 'German'], + population: 11319511, + flag: 'https://restcountries.eu/data/bel.svg', + currency: 'Euro' + }, + { + name: 'Belize', + capital: 'Belmopan', + languages: ['English', 'Spanish'], + population: 370300, + flag: 'https://restcountries.eu/data/blz.svg', + currency: 'Belize dollar' + }, + { + name: 'Benin', + capital: 'Porto-Novo', + languages: ['French'], + population: 10653654, + flag: 'https://restcountries.eu/data/ben.svg', + currency: 'West African CFA franc' + }, + { + name: 'Bermuda', + capital: 'Hamilton', + languages: ['English'], + population: 61954, + flag: 'https://restcountries.eu/data/bmu.svg', + currency: 'Bermudian dollar' + }, + { + name: 'Bhutan', + capital: 'Thimphu', + languages: ['Dzongkha'], + population: 775620, + flag: 'https://restcountries.eu/data/btn.svg', + currency: 'Bhutanese ngultrum' + }, + { + name: 'Bolivia (Plurinational State of)', + capital: 'Sucre', + languages: ['Spanish', 'Aymara', 'Quechua'], + population: 10985059, + flag: 'https://restcountries.eu/data/bol.svg', + currency: 'Bolivian boliviano' + }, + { + name: 'Bonaire, Sint Eustatius and Saba', + capital: 'Kralendijk', + languages: ['Dutch'], + population: 17408, + flag: 'https://restcountries.eu/data/bes.svg', + currency: 'United States dollar' + }, + { + name: 'Bosnia and Herzegovina', + capital: 'Sarajevo', + languages: ['Bosnian', 'Croatian', 'Serbian'], + population: 3531159, + flag: 'https://restcountries.eu/data/bih.svg', + currency: 'Bosnia and Herzegovina convertible mark' + }, + { + name: 'Botswana', + capital: 'Gaborone', + languages: ['English', 'Tswana'], + population: 2141206, + flag: 'https://restcountries.eu/data/bwa.svg', + currency: 'Botswana pula' + }, + { + name: 'Bouvet Island', + capital: '', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 0, + flag: 'https://restcountries.eu/data/bvt.svg', + currency: 'Norwegian krone' + }, + { + name: 'Brazil', + capital: 'Brasília', + languages: ['Portuguese'], + population: 206135893, + flag: 'https://restcountries.eu/data/bra.svg', + currency: 'Brazilian real' + }, + { + name: 'British Indian Ocean Territory', + capital: 'Diego Garcia', + languages: ['English'], + population: 3000, + flag: 'https://restcountries.eu/data/iot.svg', + currency: 'United States dollar' + }, + { + name: 'United States Minor Outlying Islands', + capital: '', + languages: ['English'], + population: 300, + flag: 'https://restcountries.eu/data/umi.svg', + currency: 'United States Dollar' + }, + { + name: 'Virgin Islands (British)', + capital: 'Road Town', + languages: ['English'], + population: 28514, + flag: 'https://restcountries.eu/data/vgb.svg', + currency: '[D]' + }, + { + name: 'Virgin Islands (U.S.)', + capital: 'Charlotte Amalie', + languages: ['English'], + population: 114743, + flag: 'https://restcountries.eu/data/vir.svg', + currency: 'United States dollar' + }, + { + name: 'Brunei Darussalam', + capital: 'Bandar Seri Begawan', + languages: ['Malay'], + population: 411900, + flag: 'https://restcountries.eu/data/brn.svg', + currency: 'Brunei dollar' + }, + { + name: 'Bulgaria', + capital: 'Sofia', + languages: ['Bulgarian'], + population: 7153784, + flag: 'https://restcountries.eu/data/bgr.svg', + currency: 'Bulgarian lev' + }, + { + name: 'Burkina Faso', + capital: 'Ouagadougou', + languages: ['French', 'Fula'], + population: 19034397, + flag: 'https://restcountries.eu/data/bfa.svg', + currency: 'West African CFA franc' + }, + { + name: 'Burundi', + capital: 'Bujumbura', + languages: ['French', 'Kirundi'], + population: 10114505, + flag: 'https://restcountries.eu/data/bdi.svg', + currency: 'Burundian franc' + }, + { + name: 'Cambodia', + capital: 'Phnom Penh', + languages: ['Khmer'], + population: 15626444, + flag: 'https://restcountries.eu/data/khm.svg', + currency: 'Cambodian riel' + }, + { + name: 'Cameroon', + capital: 'Yaoundé', + languages: ['English', 'French'], + population: 22709892, + flag: 'https://restcountries.eu/data/cmr.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Canada', + capital: 'Ottawa', + languages: ['English', 'French'], + population: 36155487, + flag: 'https://restcountries.eu/data/can.svg', + currency: 'Canadian dollar' + }, + { + name: 'Cabo Verde', + capital: 'Praia', + languages: ['Portuguese'], + population: 531239, + flag: 'https://restcountries.eu/data/cpv.svg', + currency: 'Cape Verdean escudo' + }, + { + name: 'Cayman Islands', + capital: 'George Town', + languages: ['English'], + population: 58238, + flag: 'https://restcountries.eu/data/cym.svg', + currency: 'Cayman Islands dollar' + }, + { + name: 'Central African Republic', + capital: 'Bangui', + languages: ['French', 'Sango'], + population: 4998000, + flag: 'https://restcountries.eu/data/caf.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chad', + capital: "N'Djamena", + languages: ['French', 'Arabic'], + population: 14497000, + flag: 'https://restcountries.eu/data/tcd.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chile', + capital: 'Santiago', + languages: ['Spanish'], + population: 18191900, + flag: 'https://restcountries.eu/data/chl.svg', + currency: 'Chilean peso' + }, + { + name: 'China', + capital: 'Beijing', + languages: ['Chinese'], + population: 1377422166, + flag: 'https://restcountries.eu/data/chn.svg', + currency: 'Chinese yuan' + }, + { + name: 'Christmas Island', + capital: 'Flying Fish Cove', + languages: ['English'], + population: 2072, + flag: 'https://restcountries.eu/data/cxr.svg', + currency: 'Australian dollar' + }, + { + name: 'Cocos (Keeling) Islands', + capital: 'West Island', + languages: ['English'], + population: 550, + flag: 'https://restcountries.eu/data/cck.svg', + currency: 'Australian dollar' + }, + { + name: 'Colombia', + capital: 'Bogotá', + languages: ['Spanish'], + population: 48759958, + flag: 'https://restcountries.eu/data/col.svg', + currency: 'Colombian peso' + }, + { + name: 'Comoros', + capital: 'Moroni', + languages: ['Arabic', 'French'], + population: 806153, + flag: 'https://restcountries.eu/data/com.svg', + currency: 'Comorian franc' + }, + { + name: 'Congo', + capital: 'Brazzaville', + languages: ['French', 'Lingala'], + population: 4741000, + flag: 'https://restcountries.eu/data/cog.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Congo (Democratic Republic of the)', + capital: 'Kinshasa', + languages: ['French', 'Lingala', 'Kongo', 'Swahili', 'Luba-Katanga'], + population: 85026000, + flag: 'https://restcountries.eu/data/cod.svg', + currency: 'Congolese franc' + }, + { + name: 'Cook Islands', + capital: 'Avarua', + languages: ['English'], + population: 18100, + flag: 'https://restcountries.eu/data/cok.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Costa Rica', + capital: 'San José', + languages: ['Spanish'], + population: 4890379, + flag: 'https://restcountries.eu/data/cri.svg', + currency: 'Costa Rican colón' + }, + { + name: 'Croatia', + capital: 'Zagreb', + languages: ['Croatian'], + population: 4190669, + flag: 'https://restcountries.eu/data/hrv.svg', + currency: 'Croatian kuna' + }, + { + name: 'Cuba', + capital: 'Havana', + languages: ['Spanish'], + population: 11239004, + flag: 'https://restcountries.eu/data/cub.svg', + currency: 'Cuban convertible peso' + }, + { + name: 'Curaçao', + capital: 'Willemstad', + languages: ['Dutch', '(Eastern) Punjabi', 'English'], + population: 154843, + flag: 'https://restcountries.eu/data/cuw.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Cyprus', + capital: 'Nicosia', + languages: ['Greek (modern)', 'Turkish', 'Armenian'], + population: 847000, + flag: 'https://restcountries.eu/data/cyp.svg', + currency: 'Euro' + }, + { + name: 'Czech Republic', + capital: 'Prague', + languages: ['Czech', 'Slovak'], + population: 10558524, + flag: 'https://restcountries.eu/data/cze.svg', + currency: 'Czech koruna' + }, + { + name: 'Denmark', + capital: 'Copenhagen', + languages: ['Danish'], + population: 5717014, + flag: 'https://restcountries.eu/data/dnk.svg', + currency: 'Danish krone' + }, + { + name: 'Djibouti', + capital: 'Djibouti', + languages: ['French', 'Arabic'], + population: 900000, + flag: 'https://restcountries.eu/data/dji.svg', + currency: 'Djiboutian franc' + }, + { + name: 'Dominica', + capital: 'Roseau', + languages: ['English'], + population: 71293, + flag: 'https://restcountries.eu/data/dma.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Dominican Republic', + capital: 'Santo Domingo', + languages: ['Spanish'], + population: 10075045, + flag: 'https://restcountries.eu/data/dom.svg', + currency: 'Dominican peso' + }, + { + name: 'Ecuador', + capital: 'Quito', + languages: ['Spanish'], + population: 16545799, + flag: 'https://restcountries.eu/data/ecu.svg', + currency: 'United States dollar' + }, + { + name: 'Egypt', + capital: 'Cairo', + languages: ['Arabic'], + population: 91290000, + flag: 'https://restcountries.eu/data/egy.svg', + currency: 'Egyptian pound' + }, + { + name: 'El Salvador', + capital: 'San Salvador', + languages: ['Spanish'], + population: 6520675, + flag: 'https://restcountries.eu/data/slv.svg', + currency: 'United States dollar' + }, + { + name: 'Equatorial Guinea', + capital: 'Malabo', + languages: ['Spanish', 'French'], + population: 1222442, + flag: 'https://restcountries.eu/data/gnq.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Eritrea', + capital: 'Asmara', + languages: ['Tigrinya', 'Arabic', 'English'], + population: 5352000, + flag: 'https://restcountries.eu/data/eri.svg', + currency: 'Eritrean nakfa' + }, + { + name: 'Estonia', + capital: 'Tallinn', + languages: ['Estonian'], + population: 1315944, + flag: 'https://restcountries.eu/data/est.svg', + currency: 'Euro' + }, + { + name: 'Ethiopia', + capital: 'Addis Ababa', + languages: ['Amharic'], + population: 92206005, + flag: 'https://restcountries.eu/data/eth.svg', + currency: 'Ethiopian birr' + }, + { + name: 'Falkland Islands (Malvinas)', + capital: 'Stanley', + languages: ['English'], + population: 2563, + flag: 'https://restcountries.eu/data/flk.svg', + currency: 'Falkland Islands pound' + }, + { + name: 'Faroe Islands', + capital: 'Tórshavn', + languages: ['Faroese'], + population: 49376, + flag: 'https://restcountries.eu/data/fro.svg', + currency: 'Danish krone' + }, + { + name: 'Fiji', + capital: 'Suva', + languages: ['English', 'Fijian', 'Hindi', 'Urdu'], + population: 867000, + flag: 'https://restcountries.eu/data/fji.svg', + currency: 'Fijian dollar' + }, + { + name: 'Finland', + capital: 'Helsinki', + languages: ['Finnish', 'Swedish'], + population: 5491817, + flag: 'https://restcountries.eu/data/fin.svg', + currency: 'Euro' + }, + { + name: 'France', + capital: 'Paris', + languages: ['French'], + population: 66710000, + flag: 'https://restcountries.eu/data/fra.svg', + currency: 'Euro' + }, + { + name: 'French Guiana', + capital: 'Cayenne', + languages: ['French'], + population: 254541, + flag: 'https://restcountries.eu/data/guf.svg', + currency: 'Euro' + }, + { + name: 'French Polynesia', + capital: 'Papeetē', + languages: ['French'], + population: 271800, + flag: 'https://restcountries.eu/data/pyf.svg', + currency: 'CFP franc' + }, + { + name: 'French Southern Territories', + capital: 'Port-aux-Français', + languages: ['French'], + population: 140, + flag: 'https://restcountries.eu/data/atf.svg', + currency: 'Euro' + }, + { + name: 'Gabon', + capital: 'Libreville', + languages: ['French'], + population: 1802278, + flag: 'https://restcountries.eu/data/gab.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Gambia', + capital: 'Banjul', + languages: ['English'], + population: 1882450, + flag: 'https://restcountries.eu/data/gmb.svg', + currency: 'Gambian dalasi' + }, + { + name: 'Georgia', + capital: 'Tbilisi', + languages: ['Georgian'], + population: 3720400, + flag: 'https://restcountries.eu/data/geo.svg', + currency: 'Georgian Lari' + }, + { + name: 'Germany', + capital: 'Berlin', + languages: ['German'], + population: 81770900, + flag: 'https://restcountries.eu/data/deu.svg', + currency: 'Euro' + }, + { + name: 'Ghana', + capital: 'Accra', + languages: ['English'], + population: 27670174, + flag: 'https://restcountries.eu/data/gha.svg', + currency: 'Ghanaian cedi' + }, + { + name: 'Gibraltar', + capital: 'Gibraltar', + languages: ['English'], + population: 33140, + flag: 'https://restcountries.eu/data/gib.svg', + currency: 'Gibraltar pound' + }, + { + name: 'Greece', + capital: 'Athens', + languages: ['Greek (modern)'], + population: 10858018, + flag: 'https://restcountries.eu/data/grc.svg', + currency: 'Euro' + }, + { + name: 'Greenland', + capital: 'Nuuk', + languages: ['Kalaallisut'], + population: 55847, + flag: 'https://restcountries.eu/data/grl.svg', + currency: 'Danish krone' + }, + { + name: 'Grenada', + capital: "St. George's", + languages: ['English'], + population: 103328, + flag: 'https://restcountries.eu/data/grd.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Guadeloupe', + capital: 'Basse-Terre', + languages: ['French'], + population: 400132, + flag: 'https://restcountries.eu/data/glp.svg', + currency: 'Euro' + }, + { + name: 'Guam', + capital: 'Hagåtña', + languages: ['English', 'Chamorro', 'Spanish'], + population: 184200, + flag: 'https://restcountries.eu/data/gum.svg', + currency: 'United States dollar' + }, + { + name: 'Guatemala', + capital: 'Guatemala City', + languages: ['Spanish'], + population: 16176133, + flag: 'https://restcountries.eu/data/gtm.svg', + currency: 'Guatemalan quetzal' + }, + { + name: 'Guernsey', + capital: 'St. Peter Port', + languages: ['English', 'French'], + population: 62999, + flag: 'https://restcountries.eu/data/ggy.svg', + currency: 'British pound' + }, + { + name: 'Guinea', + capital: 'Conakry', + languages: ['French', 'Fula'], + population: 12947000, + flag: 'https://restcountries.eu/data/gin.svg', + currency: 'Guinean franc' + }, + { + name: 'Guinea-Bissau', + capital: 'Bissau', + languages: ['Portuguese'], + population: 1547777, + flag: 'https://restcountries.eu/data/gnb.svg', + currency: 'West African CFA franc' + }, + { + name: 'Guyana', + capital: 'Georgetown', + languages: ['English'], + population: 746900, + flag: 'https://restcountries.eu/data/guy.svg', + currency: 'Guyanese dollar' + }, + { + name: 'Haiti', + capital: 'Port-au-Prince', + languages: ['French', 'Haitian'], + population: 11078033, + flag: 'https://restcountries.eu/data/hti.svg', + currency: 'Haitian gourde' + }, + { + name: 'Heard Island and McDonald Islands', + capital: '', + languages: ['English'], + population: 0, + flag: 'https://restcountries.eu/data/hmd.svg', + currency: 'Australian dollar' + }, + { + name: 'Holy See', + capital: 'Rome', + languages: ['Latin', 'Italian', 'French', 'German'], + population: 451, + flag: 'https://restcountries.eu/data/vat.svg', + currency: 'Euro' + }, + { + name: 'Honduras', + capital: 'Tegucigalpa', + languages: ['Spanish'], + population: 8576532, + flag: 'https://restcountries.eu/data/hnd.svg', + currency: 'Honduran lempira' + }, + { + name: 'Hong Kong', + capital: 'City of Victoria', + languages: ['English', 'Chinese'], + population: 7324300, + flag: 'https://restcountries.eu/data/hkg.svg', + currency: 'Hong Kong dollar' + }, + { + name: 'Hungary', + capital: 'Budapest', + languages: ['Hungarian'], + population: 9823000, + flag: 'https://restcountries.eu/data/hun.svg', + currency: 'Hungarian forint' + }, + { + name: 'Iceland', + capital: 'Reykjavík', + languages: ['Icelandic'], + population: 334300, + flag: 'https://restcountries.eu/data/isl.svg', + currency: 'Icelandic króna' + }, + { + name: 'India', + capital: 'New Delhi', + languages: ['Hindi', 'English'], + population: 1295210000, + flag: 'https://restcountries.eu/data/ind.svg', + currency: 'Indian rupee' + }, + { + name: 'Indonesia', + capital: 'Jakarta', + languages: ['Indonesian'], + population: 258705000, + flag: 'https://restcountries.eu/data/idn.svg', + currency: 'Indonesian rupiah' + }, + { + name: "Côte d'Ivoire", + capital: 'Yamoussoukro', + languages: ['French'], + population: 22671331, + flag: 'https://restcountries.eu/data/civ.svg', + currency: 'West African CFA franc' + }, + { + name: 'Iran (Islamic Republic of)', + capital: 'Tehran', + languages: ['Persian (Farsi)'], + population: 79369900, + flag: 'https://restcountries.eu/data/irn.svg', + currency: 'Iranian rial' + }, + { + name: 'Iraq', + capital: 'Baghdad', + languages: ['Arabic', 'Kurdish'], + population: 37883543, + flag: 'https://restcountries.eu/data/irq.svg', + currency: 'Iraqi dinar' + }, + { + name: 'Ireland', + capital: 'Dublin', + languages: ['Irish', 'English'], + population: 6378000, + flag: 'https://restcountries.eu/data/irl.svg', + currency: 'Euro' + }, + { + name: 'Isle of Man', + capital: 'Douglas', + languages: ['English', 'Manx'], + population: 84497, + flag: 'https://restcountries.eu/data/imn.svg', + currency: 'British pound' + }, + { + name: 'Israel', + capital: 'Jerusalem', + languages: ['Hebrew (modern)', 'Arabic'], + population: 8527400, + flag: 'https://restcountries.eu/data/isr.svg', + currency: 'Israeli new shekel' + }, + { + name: 'Italy', + capital: 'Rome', + languages: ['Italian'], + population: 60665551, + flag: 'https://restcountries.eu/data/ita.svg', + currency: 'Euro' + }, + { + name: 'Jamaica', + capital: 'Kingston', + languages: ['English'], + population: 2723246, + flag: 'https://restcountries.eu/data/jam.svg', + currency: 'Jamaican dollar' + }, + { + name: 'Japan', + capital: 'Tokyo', + languages: ['Japanese'], + population: 126960000, + flag: 'https://restcountries.eu/data/jpn.svg', + currency: 'Japanese yen' + }, + { + name: 'Jersey', + capital: 'Saint Helier', + languages: ['English', 'French'], + population: 100800, + flag: 'https://restcountries.eu/data/jey.svg', + currency: 'British pound' + }, + { + name: 'Jordan', + capital: 'Amman', + languages: ['Arabic'], + population: 9531712, + flag: 'https://restcountries.eu/data/jor.svg', + currency: 'Jordanian dinar' + }, + { + name: 'Kazakhstan', + capital: 'Astana', + languages: ['Kazakh', 'Russian'], + population: 17753200, + flag: 'https://restcountries.eu/data/kaz.svg', + currency: 'Kazakhstani tenge' + }, + { + name: 'Kenya', + capital: 'Nairobi', + languages: ['English', 'Swahili'], + population: 47251000, + flag: 'https://restcountries.eu/data/ken.svg', + currency: 'Kenyan shilling' + }, + { + name: 'Kiribati', + capital: 'South Tarawa', + languages: ['English'], + population: 113400, + flag: 'https://restcountries.eu/data/kir.svg', + currency: 'Australian dollar' + }, + { + name: 'Kuwait', + capital: 'Kuwait City', + languages: ['Arabic'], + population: 4183658, + flag: 'https://restcountries.eu/data/kwt.svg', + currency: 'Kuwaiti dinar' + }, + { + name: 'Kyrgyzstan', + capital: 'Bishkek', + languages: ['Kyrgyz', 'Russian'], + population: 6047800, + flag: 'https://restcountries.eu/data/kgz.svg', + currency: 'Kyrgyzstani som' + }, + { + name: "Lao People's Democratic Republic", + capital: 'Vientiane', + languages: ['Lao'], + population: 6492400, + flag: 'https://restcountries.eu/data/lao.svg', + currency: 'Lao kip' + }, + { + name: 'Latvia', + capital: 'Riga', + languages: ['Latvian'], + population: 1961600, + flag: 'https://restcountries.eu/data/lva.svg', + currency: 'Euro' + }, + { + name: 'Lebanon', + capital: 'Beirut', + languages: ['Arabic', 'French'], + population: 5988000, + flag: 'https://restcountries.eu/data/lbn.svg', + currency: 'Lebanese pound' + }, + { + name: 'Lesotho', + capital: 'Maseru', + languages: ['English', 'Southern Sotho'], + population: 1894194, + flag: 'https://restcountries.eu/data/lso.svg', + currency: 'Lesotho loti' + }, + { + name: 'Liberia', + capital: 'Monrovia', + languages: ['English'], + population: 4615000, + flag: 'https://restcountries.eu/data/lbr.svg', + currency: 'Liberian dollar' + }, + { + name: 'Libya', + capital: 'Tripoli', + languages: ['Arabic'], + population: 6385000, + flag: 'https://restcountries.eu/data/lby.svg', + currency: 'Libyan dinar' + }, + { + name: 'Liechtenstein', + capital: 'Vaduz', + languages: ['German'], + population: 37623, + flag: 'https://restcountries.eu/data/lie.svg', + currency: 'Swiss franc' + }, + { + name: 'Lithuania', + capital: 'Vilnius', + languages: ['Lithuanian'], + population: 2872294, + flag: 'https://restcountries.eu/data/ltu.svg', + currency: 'Euro' + }, + { + name: 'Luxembourg', + capital: 'Luxembourg', + languages: ['French', 'German', 'Luxembourgish'], + population: 576200, + flag: 'https://restcountries.eu/data/lux.svg', + currency: 'Euro' + }, + { + name: 'Macao', + capital: '', + languages: ['Chinese', 'Portuguese'], + population: 649100, + flag: 'https://restcountries.eu/data/mac.svg', + currency: 'Macanese pataca' + }, + { + name: 'Macedonia (the former Yugoslav Republic of)', + capital: 'Skopje', + languages: ['Macedonian'], + population: 2058539, + flag: 'https://restcountries.eu/data/mkd.svg', + currency: 'Macedonian denar' + }, + { + name: 'Madagascar', + capital: 'Antananarivo', + languages: ['French', 'Malagasy'], + population: 22434363, + flag: 'https://restcountries.eu/data/mdg.svg', + currency: 'Malagasy ariary' + }, + { + name: 'Malawi', + capital: 'Lilongwe', + languages: ['English', 'Chichewa'], + population: 16832910, + flag: 'https://restcountries.eu/data/mwi.svg', + currency: 'Malawian kwacha' + }, + { + name: 'Malaysia', + capital: 'Kuala Lumpur', + languages: ['Malaysian'], + population: 31405416, + flag: 'https://restcountries.eu/data/mys.svg', + currency: 'Malaysian ringgit' + }, + { + name: 'Maldives', + capital: 'Malé', + languages: ['Divehi'], + population: 344023, + flag: 'https://restcountries.eu/data/mdv.svg', + currency: 'Maldivian rufiyaa' + }, + { + name: 'Mali', + capital: 'Bamako', + languages: ['French'], + population: 18135000, + flag: 'https://restcountries.eu/data/mli.svg', + currency: 'West African CFA franc' + }, + { + name: 'Malta', + capital: 'Valletta', + languages: ['Maltese', 'English'], + population: 425384, + flag: 'https://restcountries.eu/data/mlt.svg', + currency: 'Euro' + }, + { + name: 'Marshall Islands', + capital: 'Majuro', + languages: ['English', 'Marshallese'], + population: 54880, + flag: 'https://restcountries.eu/data/mhl.svg', + currency: 'United States dollar' + }, + { + name: 'Martinique', + capital: 'Fort-de-France', + languages: ['French'], + population: 378243, + flag: 'https://restcountries.eu/data/mtq.svg', + currency: 'Euro' + }, + { + name: 'Mauritania', + capital: 'Nouakchott', + languages: ['Arabic'], + population: 3718678, + flag: 'https://restcountries.eu/data/mrt.svg', + currency: 'Mauritanian ouguiya' + }, + { + name: 'Mauritius', + capital: 'Port Louis', + languages: ['English'], + population: 1262879, + flag: 'https://restcountries.eu/data/mus.svg', + currency: 'Mauritian rupee' + }, + { + name: 'Mayotte', + capital: 'Mamoudzou', + languages: ['French'], + population: 226915, + flag: 'https://restcountries.eu/data/myt.svg', + currency: 'Euro' + }, + { + name: 'Mexico', + capital: 'Mexico City', + languages: ['Spanish'], + population: 122273473, + flag: 'https://restcountries.eu/data/mex.svg', + currency: 'Mexican peso' + }, + { + name: 'Micronesia (Federated States of)', + capital: 'Palikir', + languages: ['English'], + population: 102800, + flag: 'https://restcountries.eu/data/fsm.svg', + currency: '[D]' + }, + { + name: 'Moldova (Republic of)', + capital: 'Chișinău', + languages: ['Romanian'], + population: 3553100, + flag: 'https://restcountries.eu/data/mda.svg', + currency: 'Moldovan leu' + }, + { + name: 'Monaco', + capital: 'Monaco', + languages: ['French'], + population: 38400, + flag: 'https://restcountries.eu/data/mco.svg', + currency: 'Euro' + }, + { + name: 'Mongolia', + capital: 'Ulan Bator', + languages: ['Mongolian'], + population: 3093100, + flag: 'https://restcountries.eu/data/mng.svg', + currency: 'Mongolian tögrög' + }, + { + name: 'Montenegro', + capital: 'Podgorica', + languages: ['Serbian', 'Bosnian', 'Albanian', 'Croatian'], + population: 621810, + flag: 'https://restcountries.eu/data/mne.svg', + currency: 'Euro' + }, + { + name: 'Montserrat', + capital: 'Plymouth', + languages: ['English'], + population: 4922, + flag: 'https://restcountries.eu/data/msr.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Morocco', + capital: 'Rabat', + languages: ['Arabic'], + population: 33337529, + flag: 'https://restcountries.eu/data/mar.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Mozambique', + capital: 'Maputo', + languages: ['Portuguese'], + population: 26423700, + flag: 'https://restcountries.eu/data/moz.svg', + currency: 'Mozambican metical' + }, + { + name: 'Myanmar', + capital: 'Naypyidaw', + languages: ['Burmese'], + population: 51419420, + flag: 'https://restcountries.eu/data/mmr.svg', + currency: 'Burmese kyat' + }, + { + name: 'Namibia', + capital: 'Windhoek', + languages: ['English', 'Afrikaans'], + population: 2324388, + flag: 'https://restcountries.eu/data/nam.svg', + currency: 'Namibian dollar' + }, + { + name: 'Nauru', + capital: 'Yaren', + languages: ['English', 'Nauruan'], + population: 10084, + flag: 'https://restcountries.eu/data/nru.svg', + currency: 'Australian dollar' + }, + { + name: 'Nepal', + capital: 'Kathmandu', + languages: ['Nepali'], + population: 28431500, + flag: 'https://restcountries.eu/data/npl.svg', + currency: 'Nepalese rupee' + }, + { + name: 'Netherlands', + capital: 'Amsterdam', + languages: ['Dutch'], + population: 17019800, + flag: 'https://restcountries.eu/data/nld.svg', + currency: 'Euro' + }, + { + name: 'New Caledonia', + capital: 'Nouméa', + languages: ['French'], + population: 268767, + flag: 'https://restcountries.eu/data/ncl.svg', + currency: 'CFP franc' + }, + { + name: 'New Zealand', + capital: 'Wellington', + languages: ['English', 'Māori'], + population: 4697854, + flag: 'https://restcountries.eu/data/nzl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Nicaragua', + capital: 'Managua', + languages: ['Spanish'], + population: 6262703, + flag: 'https://restcountries.eu/data/nic.svg', + currency: 'Nicaraguan córdoba' + }, + { + name: 'Niger', + capital: 'Niamey', + languages: ['French'], + population: 20715000, + flag: 'https://restcountries.eu/data/ner.svg', + currency: 'West African CFA franc' + }, + { + name: 'Nigeria', + capital: 'Abuja', + languages: ['English'], + population: 186988000, + flag: 'https://restcountries.eu/data/nga.svg', + currency: 'Nigerian naira' + }, + { + name: 'Niue', + capital: 'Alofi', + languages: ['English'], + population: 1470, + flag: 'https://restcountries.eu/data/niu.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Norfolk Island', + capital: 'Kingston', + languages: ['English'], + population: 2302, + flag: 'https://restcountries.eu/data/nfk.svg', + currency: 'Australian dollar' + }, + { + name: "Korea (Democratic People's Republic of)", + capital: 'Pyongyang', + languages: ['Korean'], + population: 25281000, + flag: 'https://restcountries.eu/data/prk.svg', + currency: 'North Korean won' + }, + { + name: 'Northern Mariana Islands', + capital: 'Saipan', + languages: ['English', 'Chamorro'], + population: 56940, + flag: 'https://restcountries.eu/data/mnp.svg', + currency: 'United States dollar' + }, + { + name: 'Norway', + capital: 'Oslo', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 5223256, + flag: 'https://restcountries.eu/data/nor.svg', + currency: 'Norwegian krone' + }, + { + name: 'Oman', + capital: 'Muscat', + languages: ['Arabic'], + population: 4420133, + flag: 'https://restcountries.eu/data/omn.svg', + currency: 'Omani rial' + }, + { + name: 'Pakistan', + capital: 'Islamabad', + languages: ['English', 'Urdu'], + population: 194125062, + flag: 'https://restcountries.eu/data/pak.svg', + currency: 'Pakistani rupee' + }, + { + name: 'Palau', + capital: 'Ngerulmud', + languages: ['English'], + population: 17950, + flag: 'https://restcountries.eu/data/plw.svg', + currency: '[E]' + }, + { + name: 'Palestine, State of', + capital: 'Ramallah', + languages: ['Arabic'], + population: 4682467, + flag: 'https://restcountries.eu/data/pse.svg', + currency: 'Israeli new sheqel' + }, + { + name: 'Panama', + capital: 'Panama City', + languages: ['Spanish'], + population: 3814672, + flag: 'https://restcountries.eu/data/pan.svg', + currency: 'Panamanian balboa' + }, + { + name: 'Papua New Guinea', + capital: 'Port Moresby', + languages: ['English'], + population: 8083700, + flag: 'https://restcountries.eu/data/png.svg', + currency: 'Papua New Guinean kina' + }, + { + name: 'Paraguay', + capital: 'Asunción', + languages: ['Spanish', 'Guaraní'], + population: 6854536, + flag: 'https://restcountries.eu/data/pry.svg', + currency: 'Paraguayan guaraní' + }, + { + name: 'Peru', + capital: 'Lima', + languages: ['Spanish'], + population: 31488700, + flag: 'https://restcountries.eu/data/per.svg', + currency: 'Peruvian sol' + }, + { + name: 'Philippines', + capital: 'Manila', + languages: ['English'], + population: 103279800, + flag: 'https://restcountries.eu/data/phl.svg', + currency: 'Philippine peso' + }, + { + name: 'Pitcairn', + capital: 'Adamstown', + languages: ['English'], + population: 56, + flag: 'https://restcountries.eu/data/pcn.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Poland', + capital: 'Warsaw', + languages: ['Polish'], + population: 38437239, + flag: 'https://restcountries.eu/data/pol.svg', + currency: 'Polish złoty' + }, + { + name: 'Portugal', + capital: 'Lisbon', + languages: ['Portuguese'], + population: 10374822, + flag: 'https://restcountries.eu/data/prt.svg', + currency: 'Euro' + }, + { + name: 'Puerto Rico', + capital: 'San Juan', + languages: ['Spanish', 'English'], + population: 3474182, + flag: 'https://restcountries.eu/data/pri.svg', + currency: 'United States dollar' + }, + { + name: 'Qatar', + capital: 'Doha', + languages: ['Arabic'], + population: 2587564, + flag: 'https://restcountries.eu/data/qat.svg', + currency: 'Qatari riyal' + }, + { + name: 'Republic of Kosovo', + capital: 'Pristina', + languages: ['Albanian', 'Serbian'], + population: 1733842, + flag: 'https://restcountries.eu/data/kos.svg', + currency: 'Euro' + }, + { + name: 'Réunion', + capital: 'Saint-Denis', + languages: ['French'], + population: 840974, + flag: 'https://restcountries.eu/data/reu.svg', + currency: 'Euro' + }, + { + name: 'Romania', + capital: 'Bucharest', + languages: ['Romanian'], + population: 19861408, + flag: 'https://restcountries.eu/data/rou.svg', + currency: 'Romanian leu' + }, + { + name: 'Russian Federation', + capital: 'Moscow', + languages: ['Russian'], + population: 146599183, + flag: 'https://restcountries.eu/data/rus.svg', + currency: 'Russian ruble' + }, + { + name: 'Rwanda', + capital: 'Kigali', + languages: ['Kinyarwanda', 'English', 'French'], + population: 11553188, + flag: 'https://restcountries.eu/data/rwa.svg', + currency: 'Rwandan franc' + }, + { + name: 'Saint Barthélemy', + capital: 'Gustavia', + languages: ['French'], + population: 9417, + flag: 'https://restcountries.eu/data/blm.svg', + currency: 'Euro' + }, + { + name: 'Saint Helena, Ascension and Tristan da Cunha', + capital: 'Jamestown', + languages: ['English'], + population: 4255, + flag: 'https://restcountries.eu/data/shn.svg', + currency: 'Saint Helena pound' + }, + { + name: 'Saint Kitts and Nevis', + capital: 'Basseterre', + languages: ['English'], + population: 46204, + flag: 'https://restcountries.eu/data/kna.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Lucia', + capital: 'Castries', + languages: ['English'], + population: 186000, + flag: 'https://restcountries.eu/data/lca.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Martin (French part)', + capital: 'Marigot', + languages: ['English', 'French', 'Dutch'], + population: 36979, + flag: 'https://restcountries.eu/data/maf.svg', + currency: 'Euro' + }, + { + name: 'Saint Pierre and Miquelon', + capital: 'Saint-Pierre', + languages: ['French'], + population: 6069, + flag: 'https://restcountries.eu/data/spm.svg', + currency: 'Euro' + }, + { + name: 'Saint Vincent and the Grenadines', + capital: 'Kingstown', + languages: ['English'], + population: 109991, + flag: 'https://restcountries.eu/data/vct.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Samoa', + capital: 'Apia', + languages: ['Samoan', 'English'], + population: 194899, + flag: 'https://restcountries.eu/data/wsm.svg', + currency: 'Samoan tālā' + }, + { + name: 'San Marino', + capital: 'City of San Marino', + languages: ['Italian'], + population: 33005, + flag: 'https://restcountries.eu/data/smr.svg', + currency: 'Euro' + }, + { + name: 'Sao Tome and Principe', + capital: 'São Tomé', + languages: ['Portuguese'], + population: 187356, + flag: 'https://restcountries.eu/data/stp.svg', + currency: 'São Tomé and Príncipe dobra' + }, + { + name: 'Saudi Arabia', + capital: 'Riyadh', + languages: ['Arabic'], + population: 32248200, + flag: 'https://restcountries.eu/data/sau.svg', + currency: 'Saudi riyal' + }, + { + name: 'Senegal', + capital: 'Dakar', + languages: ['French'], + population: 14799859, + flag: 'https://restcountries.eu/data/sen.svg', + currency: 'West African CFA franc' + }, + { + name: 'Serbia', + capital: 'Belgrade', + languages: ['Serbian'], + population: 7076372, + flag: 'https://restcountries.eu/data/srb.svg', + currency: 'Serbian dinar' + }, + { + name: 'Seychelles', + capital: 'Victoria', + languages: ['French', 'English'], + population: 91400, + flag: 'https://restcountries.eu/data/syc.svg', + currency: 'Seychellois rupee' + }, + { + name: 'Sierra Leone', + capital: 'Freetown', + languages: ['English'], + population: 7075641, + flag: 'https://restcountries.eu/data/sle.svg', + currency: 'Sierra Leonean leone' + }, + { + name: 'Singapore', + capital: 'Singapore', + languages: ['English', 'Malay', 'Tamil', 'Chinese'], + population: 5535000, + flag: 'https://restcountries.eu/data/sgp.svg', + currency: 'Brunei dollar' + }, + { + name: 'Sint Maarten (Dutch part)', + capital: 'Philipsburg', + languages: ['Dutch', 'English'], + population: 38247, + flag: 'https://restcountries.eu/data/sxm.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Slovakia', + capital: 'Bratislava', + languages: ['Slovak'], + population: 5426252, + flag: 'https://restcountries.eu/data/svk.svg', + currency: 'Euro' + }, + { + name: 'Slovenia', + capital: 'Ljubljana', + languages: ['Slovene'], + population: 2064188, + flag: 'https://restcountries.eu/data/svn.svg', + currency: 'Euro' + }, + { + name: 'Solomon Islands', + capital: 'Honiara', + languages: ['English'], + population: 642000, + flag: 'https://restcountries.eu/data/slb.svg', + currency: 'Solomon Islands dollar' + }, + { + name: 'Somalia', + capital: 'Mogadishu', + languages: ['Somali', 'Arabic'], + population: 11079000, + flag: 'https://restcountries.eu/data/som.svg', + currency: 'Somali shilling' + }, + { + name: 'South Africa', + capital: 'Pretoria', + languages: [ + 'Afrikaans', + 'English', + 'Southern Ndebele', + 'Southern Sotho', + 'Swati', + 'Tswana', + 'Tsonga', + 'Venda', + 'Xhosa', + 'Zulu' + ], + population: 55653654, + flag: 'https://restcountries.eu/data/zaf.svg', + currency: 'South African rand' + }, + { + name: 'South Georgia and the South Sandwich Islands', + capital: 'King Edward Point', + languages: ['English'], + population: 30, + flag: 'https://restcountries.eu/data/sgs.svg', + currency: 'British pound' + }, + { + name: 'Korea (Republic of)', + capital: 'Seoul', + languages: ['Korean'], + population: 50801405, + flag: 'https://restcountries.eu/data/kor.svg', + currency: 'South Korean won' + }, + { + name: 'South Sudan', + capital: 'Juba', + languages: ['English'], + population: 12131000, + flag: 'https://restcountries.eu/data/ssd.svg', + currency: 'South Sudanese pound' + }, + { + name: 'Spain', + capital: 'Madrid', + languages: ['Spanish'], + population: 46438422, + flag: 'https://restcountries.eu/data/esp.svg', + currency: 'Euro' + }, + { + name: 'Sri Lanka', + capital: 'Colombo', + languages: ['Sinhalese', 'Tamil'], + population: 20966000, + flag: 'https://restcountries.eu/data/lka.svg', + currency: 'Sri Lankan rupee' + }, + { + name: 'Sudan', + capital: 'Khartoum', + languages: ['Arabic', 'English'], + population: 39598700, + flag: 'https://restcountries.eu/data/sdn.svg', + currency: 'Sudanese pound' + }, + { + name: 'Suriname', + capital: 'Paramaribo', + languages: ['Dutch'], + population: 541638, + flag: 'https://restcountries.eu/data/sur.svg', + currency: 'Surinamese dollar' + }, + { + name: 'Svalbard and Jan Mayen', + capital: 'Longyearbyen', + languages: ['Norwegian'], + population: 2562, + flag: 'https://restcountries.eu/data/sjm.svg', + currency: 'Norwegian krone' + }, + { + name: 'Swaziland', + capital: 'Lobamba', + languages: ['English', 'Swati'], + population: 1132657, + flag: 'https://restcountries.eu/data/swz.svg', + currency: 'Swazi lilangeni' + }, + { + name: 'Sweden', + capital: 'Stockholm', + languages: ['Swedish'], + population: 9894888, + flag: 'https://restcountries.eu/data/swe.svg', + currency: 'Swedish krona' + }, + { + name: 'Switzerland', + capital: 'Bern', + languages: ['German', 'French', 'Italian'], + population: 8341600, + flag: 'https://restcountries.eu/data/che.svg', + currency: 'Swiss franc' + }, + { + name: 'Syrian Arab Republic', + capital: 'Damascus', + languages: ['Arabic'], + population: 18564000, + flag: 'https://restcountries.eu/data/syr.svg', + currency: 'Syrian pound' + }, + { + name: 'Taiwan', + capital: 'Taipei', + languages: ['Chinese'], + population: 23503349, + flag: 'https://restcountries.eu/data/twn.svg', + currency: 'New Taiwan dollar' + }, + { + name: 'Tajikistan', + capital: 'Dushanbe', + languages: ['Tajik', 'Russian'], + population: 8593600, + flag: 'https://restcountries.eu/data/tjk.svg', + currency: 'Tajikistani somoni' + }, + { + name: 'Tanzania, United Republic of', + capital: 'Dodoma', + languages: ['Swahili', 'English'], + population: 55155000, + flag: 'https://restcountries.eu/data/tza.svg', + currency: 'Tanzanian shilling' + }, + { + name: 'Thailand', + capital: 'Bangkok', + languages: ['Thai'], + population: 65327652, + flag: 'https://restcountries.eu/data/tha.svg', + currency: 'Thai baht' + }, + { + name: 'Timor-Leste', + capital: 'Dili', + languages: ['Portuguese'], + population: 1167242, + flag: 'https://restcountries.eu/data/tls.svg', + currency: 'United States dollar' + }, + { + name: 'Togo', + capital: 'Lomé', + languages: ['French'], + population: 7143000, + flag: 'https://restcountries.eu/data/tgo.svg', + currency: 'West African CFA franc' + }, + { + name: 'Tokelau', + capital: 'Fakaofo', + languages: ['English'], + population: 1411, + flag: 'https://restcountries.eu/data/tkl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Tonga', + capital: "Nuku'alofa", + languages: ['English', 'Tonga (Tonga Islands)'], + population: 103252, + flag: 'https://restcountries.eu/data/ton.svg', + currency: 'Tongan paʻanga' + }, + { + name: 'Trinidad and Tobago', + capital: 'Port of Spain', + languages: ['English'], + population: 1349667, + flag: 'https://restcountries.eu/data/tto.svg', + currency: 'Trinidad and Tobago dollar' + }, + { + name: 'Tunisia', + capital: 'Tunis', + languages: ['Arabic'], + population: 11154400, + flag: 'https://restcountries.eu/data/tun.svg', + currency: 'Tunisian dinar' + }, + { + name: 'Turkey', + capital: 'Ankara', + languages: ['Turkish'], + population: 78741053, + flag: 'https://restcountries.eu/data/tur.svg', + currency: 'Turkish lira' + }, + { + name: 'Turkmenistan', + capital: 'Ashgabat', + languages: ['Turkmen', 'Russian'], + population: 4751120, + flag: 'https://restcountries.eu/data/tkm.svg', + currency: 'Turkmenistan manat' + }, + { + name: 'Turks and Caicos Islands', + capital: 'Cockburn Town', + languages: ['English'], + population: 31458, + flag: 'https://restcountries.eu/data/tca.svg', + currency: 'United States dollar' + }, + { + name: 'Tuvalu', + capital: 'Funafuti', + languages: ['English'], + population: 10640, + flag: 'https://restcountries.eu/data/tuv.svg', + currency: 'Australian dollar' + }, + { + name: 'Uganda', + capital: 'Kampala', + languages: ['English', 'Swahili'], + population: 33860700, + flag: 'https://restcountries.eu/data/uga.svg', + currency: 'Ugandan shilling' + }, + { + name: 'Ukraine', + capital: 'Kiev', + languages: ['Ukrainian'], + population: 42692393, + flag: 'https://restcountries.eu/data/ukr.svg', + currency: 'Ukrainian hryvnia' + }, + { + name: 'United Arab Emirates', + capital: 'Abu Dhabi', + languages: ['Arabic'], + population: 9856000, + flag: 'https://restcountries.eu/data/are.svg', + currency: 'United Arab Emirates dirham' + }, + { + name: 'United Kingdom of Great Britain and Northern Ireland', + capital: 'London', + languages: ['English'], + population: 65110000, + flag: 'https://restcountries.eu/data/gbr.svg', + currency: 'British pound' + }, + { + name: 'United States of America', + capital: 'Washington, D.C.', + languages: ['English'], + population: 323947000, + flag: 'https://restcountries.eu/data/usa.svg', + currency: 'United States dollar' + }, + { + name: 'Uruguay', + capital: 'Montevideo', + languages: ['Spanish'], + population: 3480222, + flag: 'https://restcountries.eu/data/ury.svg', + currency: 'Uruguayan peso' + }, + { + name: 'Uzbekistan', + capital: 'Tashkent', + languages: ['Uzbek', 'Russian'], + population: 31576400, + flag: 'https://restcountries.eu/data/uzb.svg', + currency: "Uzbekistani so'm" + }, + { + name: 'Vanuatu', + capital: 'Port Vila', + languages: ['Bislama', 'English', 'French'], + population: 277500, + flag: 'https://restcountries.eu/data/vut.svg', + currency: 'Vanuatu vatu' + }, + { + name: 'Venezuela (Bolivarian Republic of)', + capital: 'Caracas', + languages: ['Spanish'], + population: 31028700, + flag: 'https://restcountries.eu/data/ven.svg', + currency: 'Venezuelan bolívar' + }, + { + name: 'Viet Nam', + capital: 'Hanoi', + languages: ['Vietnamese'], + population: 92700000, + flag: 'https://restcountries.eu/data/vnm.svg', + currency: 'Vietnamese đồng' + }, + { + name: 'Wallis and Futuna', + capital: 'Mata-Utu', + languages: ['French'], + population: 11750, + flag: 'https://restcountries.eu/data/wlf.svg', + currency: 'CFP franc' + }, + { + name: 'Western Sahara', + capital: 'El Aaiún', + languages: ['Spanish'], + population: 510713, + flag: 'https://restcountries.eu/data/esh.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Yemen', + capital: "Sana'a", + languages: ['Arabic'], + population: 27478000, + flag: 'https://restcountries.eu/data/yem.svg', + currency: 'Yemeni rial' + }, + { + name: 'Zambia', + capital: 'Lusaka', + languages: ['English'], + population: 15933883, + flag: 'https://restcountries.eu/data/zmb.svg', + currency: 'Zambian kwacha' + }, + { + name: 'Zimbabwe', + capital: 'Harare', + languages: ['English', 'Shona', 'Northern Ndebele'], + population: 14240168, + flag: 'https://restcountries.eu/data/zwe.svg', + currency: 'Botswana pula' + } +] diff --git a/15_Day/15_day_starter/index.html b/15_Day/15_day_starter/index.html new file mode 100644 index 0000000..db149cc --- /dev/null +++ b/15_Day/15_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:15 Day + + + +

30DaysOfJavaScript:15 Day

+

Classes

+ + + + + + + \ No newline at end of file diff --git a/15_Day/15_day_starter/scripts/main.js b/15_Day/15_day_starter/scripts/main.js new file mode 100644 index 0000000..4e66495 --- /dev/null +++ b/15_Day/15_day_starter/scripts/main.js @@ -0,0 +1,105 @@ + + +class Person { + constructor(firstName, lastName, age, country, city) { + this.firstName = firstName + this.lastName = lastName + this.age = age + this.country = country + this.city = city + this.score = 0 + this.skills = [] + } + getFullName() { + const fullName = this.firstName + ' ' + this.lastName + return fullName + } + get getScore() { + return this.score + } + get getSkills() { + return this.skills + } + set setScore(score) { + this.score += score + } + set setSkill(skill) { + this.skills.push(skill) + } + getPersonInfo() { + let fullName = this.getFullName() + let skills = + this.skills.length > 0 && + this.skills.slice(0, this.skills.length - 1).join(', ') + + ` and ${this.skills[this.skills.length - 1]}` + + let formattedSkills = skills ? `He knows ${skills}` : '' + + let info = `${fullName} is ${this.age}. He lives ${this.city}, ${this.country}. ${formattedSkills}` + console.log(this) + return info + } + static favoriteSkill() { + const skills = ['HTML', 'CSS', 'JS', 'React', 'Python', 'Node'] + const index = Math.floor(Math.random() * skills.length) + console.log('hi') + return skills[index] + } +} + +console.log(Person.favoriteSkill()) + +class Student extends Person { + constructor(firstName, lastName, age, country, city, gender) { + super(firstName, lastName, age, country, city) + this.gender = gender + } + + saySomething() { + console.log('I am a child of the person class') + } + getPersonInfo() { + let fullName = this.getFullName() + let skills = + this.skills.length > 0 && + this.skills.slice(0, this.skills.length - 1).join(', ') + + ` and ${this.skills[this.skills.length - 1]}` + + let formattedSkills = skills ? `He knows ${skills}` : '' + let pronoun = this.gender == 'Male' ? 'He' : 'She' + + let info = `${fullName} is ${this.age}. ${pronoun} lives in ${this.city}, ${this.country}. ${formattedSkills}` + console.log(this) + return info + } +} + +const s1 = new Student( + 'Asabeneh', + 'Yetayeh', + 250, + 'Finland', + 'Helsinki', + 'Male' +) +const s2 = new Student('Lidiya', 'Tekle', 28, 'Finland', 'Helsinki', 'Female') +s1.setScore = 1 +s1.setSkill = 'HTML' +s1.setSkill = 'CSS' +s1.setSkill = 'JavaScript' + +s2.setScore = 1 +s2.setSkill = 'Planning' +s2.setSkill = 'Managing' +s2.setSkill = 'Organizing' + +console.log(s1) +console.log(s2) + +console.log(s1.saySomething()) +console.log(s1.getFullName()) +console.log(s1.getPersonInfo()) + +console.log(s2.saySomething()) +console.log(s2.getFullName()) +console.log(s2.getPersonInfo()) \ No newline at end of file From d3b2c892ced8295ddc1542baab7089884271a56a Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Thu, 16 Jan 2020 00:56:45 +0200 Subject: [PATCH 12/21] day 15 --- 14_Day/14_day_error_handling.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/14_Day/14_day_error_handling.md b/14_Day/14_day_error_handling.md index f60da42..e431486 100644 --- a/14_Day/14_day_error_handling.md +++ b/14_Day/14_day_error_handling.md @@ -14,7 +14,7 @@ -[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_15_classes.md) +[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) ![Thirty Days Of JavaScript](../images/banners/day_1_14.png) @@ -190,4 +190,4 @@ Practice 🎉 CONGRATULATIONS ! 🎉 -[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_15_classes.md) +[<< Day 13](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/13_Day/13_day_console_object_methods.md) | [Day 15>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) From 2f06722dfb1d4c8e8559c8e559d894af1cdf02a2 Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Thu, 16 Jan 2020 00:59:38 +0200 Subject: [PATCH 13/21] day 15 --- 15_Day/15_day_classes.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/15_Day/15_day_classes.md b/15_Day/15_day_classes.md index 908d192..3163aff 100644 --- a/15_Day/15_day_classes.md +++ b/15_Day/15_day_classes.md @@ -679,18 +679,18 @@ Now, the getPersonInfo method has been overridden and it identifies if the perso ```JS ages = [31, 26, 34, 37, 27, 26, 32, 32, 26, 27, 27, 24, 32, 33, 27, 25, 26, 38, 37, 31, 34, 24, 33, 29, 26] -console.log('Count:', statistics.count()) # 25 -console.log('Sum: ', statistics.sum()) # 744 -console.log('Min: ', statistics.min()) # 24 -console.log('Max: ', statistics.max()) # 38 -console.log('Range: ', statistics.range() # 14 -console.log('Mean: ', statistics.mean()) # 30 -console.log('Median: ',statistics.median()) # 29 -console.log('Mode: ', statistics.mode()) # {'mode': 26, 'count': 5} -console.log('Variance: ',statistics.var()) # 17.5 -console.log('Standard Deviation: ', statistics.std()) # 4.2 -console.log('Variance: ',statistics.var()) # 17.5 -console.log('Frequency Distribution: ',statistics.freqDist()) # [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] +console.log('Count:', statistics.count()) // 25 +console.log('Sum: ', statistics.sum()) // 744 +console.log('Min: ', statistics.min()) // 24 +console.log('Max: ', statistics.max()) // 38 +console.log('Range: ', statistics.range() // 14 +console.log('Mean: ', statistics.mean()) // 30 +console.log('Median: ',statistics.median()) // 29 +console.log('Mode: ', statistics.mode()) // {'mode': 26, 'count': 5} +console.log('Variance: ',statistics.var()) // 17.5 +console.log('Standard Deviation: ', statistics.std()) // 4.2 +console.log('Variance: ',statistics.var()) // 17.5 +console.log('Frequency Distribution: ',statistics.freqDist()) // [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] ``` ```sh @@ -709,7 +709,7 @@ Standard Deviation: 4.2 Frequency Distribution: [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] ``` -1. Create a class called PersonAccount. It has firstname, lastname, incomes, expenses properties and it has total_income, total_expense, account_info,add_income, add_expense and account_balance methods. Incomes is a set of incomes and its description and the same goes for expenses. +1. Create a class called PersonAccount. It has firstname, lastname, incomes, expenses properties and it has totalIncome, totalExpense, accountInfo,addIncome, addExpense and accountBalance methods. Incomes is a set of incomes and its description and expenses is also a set of expenses and its description. 🎉 CONGRATULATIONS ! 🎉 From c51058b3de4df70a216ed25e57ad474c6ffcb166 Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Thu, 16 Jan 2020 01:01:28 +0200 Subject: [PATCH 14/21] day 15 --- 15_Day/15_day_classes.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/15_Day/15_day_classes.md b/15_Day/15_day_classes.md index 3163aff..531867b 100644 --- a/15_Day/15_day_classes.md +++ b/15_Day/15_day_classes.md @@ -508,13 +508,11 @@ class Person { let formattedSkills = skills ? `He knows ${skills}` : '' let info = `${fullName} is ${this.age}. He lives ${this.city}, ${this.country}. ${formattedSkills}` - console.log(this) return info } static favoriteSkill() { const skills = ['HTML', 'CSS', 'JS', 'React', 'Python', 'Node'] const index = Math.floor(Math.random() * skills.length) - console.log('hi') return skills[index] } static showDateTime() { @@ -609,7 +607,6 @@ class Student extends Person { let pronoun = this.gender == 'Male' ? 'He' : 'She' let info = `${fullName} is ${this.age}. ${pronoun} lives in ${this.city}, ${this.country}. ${formattedSkills}` - console.log(this) return info } } From e3b022f0ed39d55ce6cf085cc183cd7930ec5597 Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Fri, 17 Jan 2020 02:09:20 +0200 Subject: [PATCH 15/21] day 16 --- .gitignore | 2 - 10_Day/10_day_Set_and_Map.md | 38 +- 15_Day/15_day_classes.md | 7 +- 16_Day/16_day_json.md | 475 ++++ 16_Day/16_day_starter/data/countries_data.js | 2013 +++++++++++++++++ 16_Day/16_day_starter/index.html | 17 + 16_Day/16_day_starter/scripts/main.js | 2 + .../{Day -1 – 16.png => day_1_16.png} | Bin .../{Day -1 – 17.png => day_1_17.png} | Bin .../{Day -1 – 18.png => day_1_18.png} | Bin .../{Day -1 – 19.png => day_1_19.png} | Bin .../{Day -1 – 20.png => day_1_20.png} | Bin index.html | 109 + 13 files changed, 2641 insertions(+), 22 deletions(-) create mode 100644 16_Day/16_day_json.md create mode 100644 16_Day/16_day_starter/data/countries_data.js create mode 100644 16_Day/16_day_starter/index.html create mode 100644 16_Day/16_day_starter/scripts/main.js rename images/banners/{Day -1 – 16.png => day_1_16.png} (100%) rename images/banners/{Day -1 – 17.png => day_1_17.png} (100%) rename images/banners/{Day -1 – 18.png => day_1_18.png} (100%) rename images/banners/{Day -1 – 19.png => day_1_19.png} (100%) rename images/banners/{Day -1 – 20.png => day_1_20.png} (100%) create mode 100644 index.html diff --git a/.gitignore b/.gitignore index 6926acd..107528e 100644 --- a/.gitignore +++ b/.gitignore @@ -14,8 +14,6 @@ day9.md day10.md 01_02_03_days_backup.md test.md - -16_Day 17_Day 18_Day 19_Day diff --git a/10_Day/10_day_Set_and_Map.md b/10_Day/10_day_Set_and_Map.md index 69dfa14..65067c9 100644 --- a/10_Day/10_day_Set_and_Map.md +++ b/10_Day/10_day_Set_and_Map.md @@ -388,6 +388,7 @@ Norway Oslo ## Exercises ### Exercises:Level 1 + ```js const a = {4, 5, 8, 9} const b = {3, 4, 5, 7} @@ -409,32 +410,35 @@ const countries = ['Finland', 'Sweden', 'Norway'] ### Exercises:Level 3 +1. How many languages are there in the countries object file. + 1. \*\*\* Use the countries data to find the 10 most spoken languages: ````js // Your output should look like this console.log(mostSpokenLanguages(countries, 10)) - [(91, 'English'), - (45, 'French'), - (25, 'Arabic'), - (24, 'Spanish'), - (9, 'Russian'), - (9, 'Portuguese'), - (8, 'Dutch'), - (7, 'German'), - (5, 'Chinese'), - (4, 'Swahili'), - (4, 'Serbian')] + [ + {'English':91}, + {'French':45}, + {'Arabic':25}, + {'Spanish':24}, + {'Russian':9}, + {'Portuguese':9}, + {'Dutch':8}, + {'German':7}, + {'Chinese':5}, + {'Swahili':4}, + {'Serbian':4}] // Your output should look like this console.log(mostSpokenLanguages(countries, 3)) - [ - (91, 'English'), - (45, 'French'), - (25, 'Arabic') - ]``` - ```` + [ + {'English':91}, + {'French':45}, + {'Arabic':25} + ] +```` 🎉 CONGRATULATIONS ! 🎉 diff --git a/15_Day/15_day_classes.md b/15_Day/15_day_classes.md index 531867b..e878e53 100644 --- a/15_Day/15_day_classes.md +++ b/15_Day/15_day_classes.md @@ -14,7 +14,7 @@ -[<< Day 14](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/14_Day/14_day_error_handling.md) | [Day 16>>](#) +[<< Day 14](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/14_Day/14_day_error_handling.md) | [Day 16>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/16_Day/16_day_json.md) ![Thirty Days Of JavaScript](../images/banners/day_1_15.png) @@ -35,6 +35,7 @@ - [Exercises Level 1](#exercises-level-1) - [Exercises Level 2](#exercises-level-2) - [Exercises Level 3](#exercises-level-3) + # Day 15 ## Classes @@ -706,8 +707,8 @@ Standard Deviation: 4.2 Frequency Distribution: [(20.0, 26), (16.0, 27), (12.0, 32), (8.0, 37), (8.0, 34), (8.0, 33), (8.0, 31), (8.0, 24), (4.0, 38), (4.0, 29), (4.0, 25)] ``` -1. Create a class called PersonAccount. It has firstname, lastname, incomes, expenses properties and it has totalIncome, totalExpense, accountInfo,addIncome, addExpense and accountBalance methods. Incomes is a set of incomes and its description and expenses is also a set of expenses and its description. +1. Create a class called PersonAccount. It has firstname, lastname, incomes, expenses properties and it has totalIncome, totalExpense, accountInfo,addIncome, addExpense and accountBalance methods. Incomes is a set of incomes and its description and expenses is also a set of expenses and its description. 🎉 CONGRATULATIONS ! 🎉 -[<< Day 14](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/14_Day/14_day_error_handling.md) | [Day 16>>](#) \ No newline at end of file +[<< Day 14](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/14_Day/14_day_error_handling.md) | [Day 16>>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/16_Day/16_day_json.md) diff --git a/16_Day/16_day_json.md b/16_Day/16_day_json.md new file mode 100644 index 0000000..dafb357 --- /dev/null +++ b/16_Day/16_day_json.md @@ -0,0 +1,475 @@ +
+

30 Days Of JavaScript

+ + + + + Twitter Follow + + +Author: +Asabeneh Yetayeh
+ January, 2020 +
+ +
+ +[<< Day 15](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) | [Day 17>>](#) + +![Thirty Days Of JavaScript](../images/banners/day_1_16.png) + +- [Day 16](#day-16) + - [JSON](#json) + - [Converting JSON to JavaScript Object](#converting-json-to-javascript-object) + - [JSON.parse()](#jsonparse) + - [Using a reviver function with JSON.parse()](#using-a-reviver-function-with-jsonparse) + - [Converting Object to JSON](#converting-object-to-json) + - [Using a Filter Array with JSON.stringify](#using-a-filter-array-with-jsonstringify) + - [Exercises](#exercises) + - [Exercises Level 1](#exercises-level-1) + - [Exercises Level 2](#exercises-level-2) + - [Exercises Level 3](#exercises-level-3) + +# Day 16 + +## JSON + +JSON stands for JavaScript Object Notation. The JSON syntax is derived from JavaScript object notation syntax, but the JSON format is text or string only. JSON is a light weight data format for storing and transporting. JSON is mostly used when data is sent from a server to a client. JSON is an easier-to-use alternative to XML. + +**Example:** + +```js +{ +"users":[ + { + "firstName":"Asabeneh", + "lastName":"Yetayeh", + "age":250, + "email":"asab@asb.com" + }, + { + "firstName":"Alex", + "lastName":"James", + "age":25, + "email":"alex@alex.com" + }, + { + "firstName":"Lidiya", + "lastName":"Tekle", + "age":28, + "email":"lidiya@lidiya.com" + } +] +} +``` + +The above JSON example is not much different for a normal object. Then, what is the difference ? The difference is the key of a JSON object should be with double quotes or it should be a string. JavaScript Object and JSON are very similar that we can change JSON to Object and Object to JSON. + +Let us see the above example in more detail, it starts with a curly bracket. Inside the curly bracket, there is "users" key which has a value array. Inside the array we have different objects and each objects has keys, each keys has to have double quotes. For instance, we use "firstNaMe" instead of just firstName, however in object we use keys without double quotes. This is the major difference between an object and a JSON. Let's see more examples about JSON. + +**Example:** + +```js +{ + "Alex": { + "email": "alex@alex.com", + "skills": [ + "HTML", + "CSS", + "JavaScript" + ], + "age": 20, + "isLoggedIn": false, + "points": 30 + }, + "Asab": { + "email": "asab@asab.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "Redux", + "MongoDB", + "Express", + "React", + "Node" + ], + "age": 25, + "isLoggedIn": false, + "points": 50 + }, + "Brook": { + "email": "daniel@daniel.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "React", + "Redux" + ], + "age": 30, + "isLoggedIn": true, + "points": 50 + }, + "Daniel": { + "email": "daniel@alex.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "Python" + ], + "age": 20, + "isLoggedIn": false, + "points": 40 + }, + "John": { + "email": "john@john.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "React", + "Redux", + "Node.js" + ], + "age": 20, + "isLoggedIn": true, + "points": 50 + }, + "Thomas": { + "email": "thomas@thomas.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "React" + ], + "age": 20, + "isLoggedIn": false, + "points": 40 + }, + "Paul": { + "email": "paul@paul.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "MongoDB", + "Express", + "React", + "Node" + ], + "age": 20, + "isLoggedIn": false, + "points": 40 + } +} +``` + +### Converting JSON to JavaScript Object + +Mostly we fetch JSON data from HTTP response or from a file, but we can store the JSON as a string and we can change to Object for sake of demonstration. In JavaScript the keyword _JSON_ has _parse()_ and _stringify()_ methods. When we want to change the JSON to an object we parse the JSON using _JSON.parse()_. When we want to change the object to JSON we use _JSON.stringify()_. + +#### JSON.parse() + +```js +JSON.parse(json[, reviver]) +// json or text , the data +// reviver is an optional callback function +``` + +```js +const usersText = `{ +"users":[ + { + "firstName":"Asabeneh", + "lastName":"Yetayeh", + "age":250, + "email":"asab@asb.com" + }, + { + "firstName":"Alex", + "lastName":"James", + "age":25, + "email":"alex@alex.com" + }, + { + "firstName":"Lidiya", + "lastName":"Tekle", + "age":28, + "email":"lidiya@lidiya.com" + } +] +}` + +const usersObj = JSON.parse(usersText, undefined, 4) +console.log(usersObj) +``` + +### Using a reviver function with JSON.parse() + +To use the reviver function as a formatter, we put the keys we want to format first name and last name value. Let us say, we are interested to format the firstName and lastName of the JSON data . + +```js +const usersText = `{ +"users":[ + { + "firstName":"Asabeneh", + "lastName":"Yetayeh", + "age":250, + "email":"asab@asb.com" + }, + { + "firstName":"Alex", + "lastName":"James", + "age":25, + "email":"alex@alex.com" + }, + { + "firstName":"Lidiya", + "lastName":"Tekle", + "age":28, + "email":"lidiya@lidiya.com" + } +] +}` + +const usersObj = JSON.parse(usersText, (key, value) => { + let newValue = + typeof value == 'string' && key != 'email' ? value.toUpperCase() : value + return newValue +}) +console.log(usersObj) +``` + +The _JSON.parse()_ is very handy to use. You do not have to pass optional parameter, you can just use it with the required parameter and you will achieve quite a lot. + +### Converting Object to JSON + +When we want to change the object to JSON we use _JSON.stringify()_. The stringify method takes one required parameter and two optional parameters. The replacer is used as filter and the space is an indentations. If we do not want to filter out any of the keys from the object we can just pass undefined. + +```js +JSON.stringify(obj, replacer, space) +// json or text , the data +// reviver is an optional callback function +``` + +Let us convert the following object to a string. First let use keep all the keys and also let us have 4 space indentation. + +```js +const users = { + Alex: { + email: 'alex@alex.com', + skills: ['HTML', 'CSS', 'JavaScript'], + age: 20, + isLoggedIn: false, + points: 30 + }, + Asab: { + email: 'asab@asab.com', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'Redux', + 'MongoDB', + 'Express', + 'React', + 'Node' + ], + age: 25, + isLoggedIn: false, + points: 50 + }, + Brook: { + email: 'daniel@daniel.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux'], + age: 30, + isLoggedIn: true, + points: 50 + }, + Daniel: { + email: 'daniel@alex.com', + skills: ['HTML', 'CSS', 'JavaScript', 'Python'], + age: 20, + isLoggedIn: false, + points: 40 + }, + John: { + email: 'john@john.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux', 'Node.js'], + age: 20, + isLoggedIn: true, + points: 50 + }, + Thomas: { + email: 'thomas@thomas.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React'], + age: 20, + isLoggedIn: false, + points: 40 + }, + Paul: { + email: 'paul@paul.com', + skills: [ + 'HTML', + 'CSS', + 'JavaScript', + 'MongoDB', + 'Express', + 'React', + 'Node' + ], + age: 20, + isLoggedIn: false, + points: 40 + } +} + +const text = JSON.stringify(users, undefined, 4) +console.log(text) // text means JSON- because json is a string form of an object. +``` + +```sh +{ + "Alex": { + "email": "alex@alex.com", + "skills": [ + "HTML", + "CSS", + "JavaScript" + ], + "age": 20, + "isLoggedIn": false, + "points": 30 + }, + "Asab": { + "email": "asab@asab.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "Redux", + "MongoDB", + "Express", + "React", + "Node" + ], + "age": 25, + "isLoggedIn": false, + "points": 50 + }, + "Brook": { + "email": "daniel@daniel.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "React", + "Redux" + ], + "age": 30, + "isLoggedIn": true, + "points": 50 + }, + "Daniel": { + "email": "daniel@alex.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "Python" + ], + "age": 20, + "isLoggedIn": false, + "points": 40 + }, + "John": { + "email": "john@john.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "React", + "Redux", + "Node.js" + ], + "age": 20, + "isLoggedIn": true, + "points": 50 + }, + "Thomas": { + "email": "thomas@thomas.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "React" + ], + "age": 20, + "isLoggedIn": false, + "points": 40 + }, + "Paul": { + "email": "paul@paul.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "MongoDB", + "Express", + "React", + "Node" + ], + "age": 20, + "isLoggedIn": false, + "points": 40 + } +} +``` + +### Using a Filter Array with JSON.stringify + +Now, lets use the replacer as a filter. The user object has long list of keys but we are interested only in few of them. We put the keys we want to keep in array as show in the example and use it the place of the replacer. + +```js +const user = { + firstName: 'Asabeneh', + lastName: 'Yetayeh', + country: 'Finland', + city: 'Helsinki', + email: 'alex@alex.com', + skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Pyhton'], + age: 250, + isLoggedIn: false, + points: 30 +} + +const text = JSON.stringify(user,['firstName', 'lastName', 'country', 'city', 'age'],4) +console.log(text) +``` + +```sh +{ + "firstName": "Asabeneh", + "lastName": "Yetayeh", + "country": "Finland", + "city": "Helsinki", + "age": 250 +} +``` + +🌕 You are extraordinary Now, you knew a light-weight data format which you may use to store data or to send it an HTTP server. You are 16 steps a head to your way to greatness. Now do some exercises for your brain and for your muscle. + +## Exercises + +### Exercises Level 1 + +### Exercises Level 2 + +### Exercises Level 3 + +🎉 CONGRATULATIONS ! 🎉 + +[<< Day 15](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) | [Day 17>>](#) \ No newline at end of file diff --git a/16_Day/16_day_starter/data/countries_data.js b/16_Day/16_day_starter/data/countries_data.js new file mode 100644 index 0000000..92acddd --- /dev/null +++ b/16_Day/16_day_starter/data/countries_data.js @@ -0,0 +1,2013 @@ +const countries = [ + { + name: 'Afghanistan', + capital: 'Kabul', + languages: ['Pashto', 'Uzbek', 'Turkmen'], + population: 27657145, + flag: 'https://restcountries.eu/data/afg.svg', + currency: 'Afghan afghani' + }, + { + name: 'Åland Islands', + capital: 'Mariehamn', + languages: ['Swedish'], + population: 28875, + flag: 'https://restcountries.eu/data/ala.svg', + currency: 'Euro' + }, + { + name: 'Albania', + capital: 'Tirana', + languages: ['Albanian'], + population: 2886026, + flag: 'https://restcountries.eu/data/alb.svg', + currency: 'Albanian lek' + }, + { + name: 'Algeria', + capital: 'Algiers', + languages: ['Arabic'], + population: 40400000, + flag: 'https://restcountries.eu/data/dza.svg', + currency: 'Algerian dinar' + }, + { + name: 'American Samoa', + capital: 'Pago Pago', + languages: ['English', 'Samoan'], + population: 57100, + flag: 'https://restcountries.eu/data/asm.svg', + currency: 'United State Dollar' + }, + { + name: 'Andorra', + capital: 'Andorra la Vella', + languages: ['Catalan'], + population: 78014, + flag: 'https://restcountries.eu/data/and.svg', + currency: 'Euro' + }, + { + name: 'Angola', + capital: 'Luanda', + languages: ['Portuguese'], + population: 25868000, + flag: 'https://restcountries.eu/data/ago.svg', + currency: 'Angolan kwanza' + }, + { + name: 'Anguilla', + capital: 'The Valley', + languages: ['English'], + population: 13452, + flag: 'https://restcountries.eu/data/aia.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Antarctica', + capital: '', + languages: ['English', 'Russian'], + population: 1000, + flag: 'https://restcountries.eu/data/ata.svg', + currency: 'Australian dollar' + }, + { + name: 'Antigua and Barbuda', + capital: "Saint John's", + languages: ['English'], + population: 86295, + flag: 'https://restcountries.eu/data/atg.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Argentina', + capital: 'Buenos Aires', + languages: ['Spanish', 'Guaraní'], + population: 43590400, + flag: 'https://restcountries.eu/data/arg.svg', + currency: 'Argentine peso' + }, + { + name: 'Armenia', + capital: 'Yerevan', + languages: ['Armenian', 'Russian'], + population: 2994400, + flag: 'https://restcountries.eu/data/arm.svg', + currency: 'Armenian dram' + }, + { + name: 'Aruba', + capital: 'Oranjestad', + languages: ['Dutch', '(Eastern) Punjabi'], + population: 107394, + flag: 'https://restcountries.eu/data/abw.svg', + currency: 'Aruban florin' + }, + { + name: 'Australia', + capital: 'Canberra', + languages: ['English'], + population: 24117360, + flag: 'https://restcountries.eu/data/aus.svg', + currency: 'Australian dollar' + }, + { + name: 'Austria', + capital: 'Vienna', + languages: ['German'], + population: 8725931, + flag: 'https://restcountries.eu/data/aut.svg', + currency: 'Euro' + }, + { + name: 'Azerbaijan', + capital: 'Baku', + languages: ['Azerbaijani'], + population: 9730500, + flag: 'https://restcountries.eu/data/aze.svg', + currency: 'Azerbaijani manat' + }, + { + name: 'Bahamas', + capital: 'Nassau', + languages: ['English'], + population: 378040, + flag: 'https://restcountries.eu/data/bhs.svg', + currency: 'Bahamian dollar' + }, + { + name: 'Bahrain', + capital: 'Manama', + languages: ['Arabic'], + population: 1404900, + flag: 'https://restcountries.eu/data/bhr.svg', + currency: 'Bahraini dinar' + }, + { + name: 'Bangladesh', + capital: 'Dhaka', + languages: ['Bengali'], + population: 161006790, + flag: 'https://restcountries.eu/data/bgd.svg', + currency: 'Bangladeshi taka' + }, + { + name: 'Barbados', + capital: 'Bridgetown', + languages: ['English'], + population: 285000, + flag: 'https://restcountries.eu/data/brb.svg', + currency: 'Barbadian dollar' + }, + { + name: 'Belarus', + capital: 'Minsk', + languages: ['Belarusian', 'Russian'], + population: 9498700, + flag: 'https://restcountries.eu/data/blr.svg', + currency: 'New Belarusian ruble' + }, + { + name: 'Belgium', + capital: 'Brussels', + languages: ['Dutch', 'French', 'German'], + population: 11319511, + flag: 'https://restcountries.eu/data/bel.svg', + currency: 'Euro' + }, + { + name: 'Belize', + capital: 'Belmopan', + languages: ['English', 'Spanish'], + population: 370300, + flag: 'https://restcountries.eu/data/blz.svg', + currency: 'Belize dollar' + }, + { + name: 'Benin', + capital: 'Porto-Novo', + languages: ['French'], + population: 10653654, + flag: 'https://restcountries.eu/data/ben.svg', + currency: 'West African CFA franc' + }, + { + name: 'Bermuda', + capital: 'Hamilton', + languages: ['English'], + population: 61954, + flag: 'https://restcountries.eu/data/bmu.svg', + currency: 'Bermudian dollar' + }, + { + name: 'Bhutan', + capital: 'Thimphu', + languages: ['Dzongkha'], + population: 775620, + flag: 'https://restcountries.eu/data/btn.svg', + currency: 'Bhutanese ngultrum' + }, + { + name: 'Bolivia (Plurinational State of)', + capital: 'Sucre', + languages: ['Spanish', 'Aymara', 'Quechua'], + population: 10985059, + flag: 'https://restcountries.eu/data/bol.svg', + currency: 'Bolivian boliviano' + }, + { + name: 'Bonaire, Sint Eustatius and Saba', + capital: 'Kralendijk', + languages: ['Dutch'], + population: 17408, + flag: 'https://restcountries.eu/data/bes.svg', + currency: 'United States dollar' + }, + { + name: 'Bosnia and Herzegovina', + capital: 'Sarajevo', + languages: ['Bosnian', 'Croatian', 'Serbian'], + population: 3531159, + flag: 'https://restcountries.eu/data/bih.svg', + currency: 'Bosnia and Herzegovina convertible mark' + }, + { + name: 'Botswana', + capital: 'Gaborone', + languages: ['English', 'Tswana'], + population: 2141206, + flag: 'https://restcountries.eu/data/bwa.svg', + currency: 'Botswana pula' + }, + { + name: 'Bouvet Island', + capital: '', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 0, + flag: 'https://restcountries.eu/data/bvt.svg', + currency: 'Norwegian krone' + }, + { + name: 'Brazil', + capital: 'Brasília', + languages: ['Portuguese'], + population: 206135893, + flag: 'https://restcountries.eu/data/bra.svg', + currency: 'Brazilian real' + }, + { + name: 'British Indian Ocean Territory', + capital: 'Diego Garcia', + languages: ['English'], + population: 3000, + flag: 'https://restcountries.eu/data/iot.svg', + currency: 'United States dollar' + }, + { + name: 'United States Minor Outlying Islands', + capital: '', + languages: ['English'], + population: 300, + flag: 'https://restcountries.eu/data/umi.svg', + currency: 'United States Dollar' + }, + { + name: 'Virgin Islands (British)', + capital: 'Road Town', + languages: ['English'], + population: 28514, + flag: 'https://restcountries.eu/data/vgb.svg', + currency: '[D]' + }, + { + name: 'Virgin Islands (U.S.)', + capital: 'Charlotte Amalie', + languages: ['English'], + population: 114743, + flag: 'https://restcountries.eu/data/vir.svg', + currency: 'United States dollar' + }, + { + name: 'Brunei Darussalam', + capital: 'Bandar Seri Begawan', + languages: ['Malay'], + population: 411900, + flag: 'https://restcountries.eu/data/brn.svg', + currency: 'Brunei dollar' + }, + { + name: 'Bulgaria', + capital: 'Sofia', + languages: ['Bulgarian'], + population: 7153784, + flag: 'https://restcountries.eu/data/bgr.svg', + currency: 'Bulgarian lev' + }, + { + name: 'Burkina Faso', + capital: 'Ouagadougou', + languages: ['French', 'Fula'], + population: 19034397, + flag: 'https://restcountries.eu/data/bfa.svg', + currency: 'West African CFA franc' + }, + { + name: 'Burundi', + capital: 'Bujumbura', + languages: ['French', 'Kirundi'], + population: 10114505, + flag: 'https://restcountries.eu/data/bdi.svg', + currency: 'Burundian franc' + }, + { + name: 'Cambodia', + capital: 'Phnom Penh', + languages: ['Khmer'], + population: 15626444, + flag: 'https://restcountries.eu/data/khm.svg', + currency: 'Cambodian riel' + }, + { + name: 'Cameroon', + capital: 'Yaoundé', + languages: ['English', 'French'], + population: 22709892, + flag: 'https://restcountries.eu/data/cmr.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Canada', + capital: 'Ottawa', + languages: ['English', 'French'], + population: 36155487, + flag: 'https://restcountries.eu/data/can.svg', + currency: 'Canadian dollar' + }, + { + name: 'Cabo Verde', + capital: 'Praia', + languages: ['Portuguese'], + population: 531239, + flag: 'https://restcountries.eu/data/cpv.svg', + currency: 'Cape Verdean escudo' + }, + { + name: 'Cayman Islands', + capital: 'George Town', + languages: ['English'], + population: 58238, + flag: 'https://restcountries.eu/data/cym.svg', + currency: 'Cayman Islands dollar' + }, + { + name: 'Central African Republic', + capital: 'Bangui', + languages: ['French', 'Sango'], + population: 4998000, + flag: 'https://restcountries.eu/data/caf.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chad', + capital: "N'Djamena", + languages: ['French', 'Arabic'], + population: 14497000, + flag: 'https://restcountries.eu/data/tcd.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chile', + capital: 'Santiago', + languages: ['Spanish'], + population: 18191900, + flag: 'https://restcountries.eu/data/chl.svg', + currency: 'Chilean peso' + }, + { + name: 'China', + capital: 'Beijing', + languages: ['Chinese'], + population: 1377422166, + flag: 'https://restcountries.eu/data/chn.svg', + currency: 'Chinese yuan' + }, + { + name: 'Christmas Island', + capital: 'Flying Fish Cove', + languages: ['English'], + population: 2072, + flag: 'https://restcountries.eu/data/cxr.svg', + currency: 'Australian dollar' + }, + { + name: 'Cocos (Keeling) Islands', + capital: 'West Island', + languages: ['English'], + population: 550, + flag: 'https://restcountries.eu/data/cck.svg', + currency: 'Australian dollar' + }, + { + name: 'Colombia', + capital: 'Bogotá', + languages: ['Spanish'], + population: 48759958, + flag: 'https://restcountries.eu/data/col.svg', + currency: 'Colombian peso' + }, + { + name: 'Comoros', + capital: 'Moroni', + languages: ['Arabic', 'French'], + population: 806153, + flag: 'https://restcountries.eu/data/com.svg', + currency: 'Comorian franc' + }, + { + name: 'Congo', + capital: 'Brazzaville', + languages: ['French', 'Lingala'], + population: 4741000, + flag: 'https://restcountries.eu/data/cog.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Congo (Democratic Republic of the)', + capital: 'Kinshasa', + languages: ['French', 'Lingala', 'Kongo', 'Swahili', 'Luba-Katanga'], + population: 85026000, + flag: 'https://restcountries.eu/data/cod.svg', + currency: 'Congolese franc' + }, + { + name: 'Cook Islands', + capital: 'Avarua', + languages: ['English'], + population: 18100, + flag: 'https://restcountries.eu/data/cok.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Costa Rica', + capital: 'San José', + languages: ['Spanish'], + population: 4890379, + flag: 'https://restcountries.eu/data/cri.svg', + currency: 'Costa Rican colón' + }, + { + name: 'Croatia', + capital: 'Zagreb', + languages: ['Croatian'], + population: 4190669, + flag: 'https://restcountries.eu/data/hrv.svg', + currency: 'Croatian kuna' + }, + { + name: 'Cuba', + capital: 'Havana', + languages: ['Spanish'], + population: 11239004, + flag: 'https://restcountries.eu/data/cub.svg', + currency: 'Cuban convertible peso' + }, + { + name: 'Curaçao', + capital: 'Willemstad', + languages: ['Dutch', '(Eastern) Punjabi', 'English'], + population: 154843, + flag: 'https://restcountries.eu/data/cuw.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Cyprus', + capital: 'Nicosia', + languages: ['Greek (modern)', 'Turkish', 'Armenian'], + population: 847000, + flag: 'https://restcountries.eu/data/cyp.svg', + currency: 'Euro' + }, + { + name: 'Czech Republic', + capital: 'Prague', + languages: ['Czech', 'Slovak'], + population: 10558524, + flag: 'https://restcountries.eu/data/cze.svg', + currency: 'Czech koruna' + }, + { + name: 'Denmark', + capital: 'Copenhagen', + languages: ['Danish'], + population: 5717014, + flag: 'https://restcountries.eu/data/dnk.svg', + currency: 'Danish krone' + }, + { + name: 'Djibouti', + capital: 'Djibouti', + languages: ['French', 'Arabic'], + population: 900000, + flag: 'https://restcountries.eu/data/dji.svg', + currency: 'Djiboutian franc' + }, + { + name: 'Dominica', + capital: 'Roseau', + languages: ['English'], + population: 71293, + flag: 'https://restcountries.eu/data/dma.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Dominican Republic', + capital: 'Santo Domingo', + languages: ['Spanish'], + population: 10075045, + flag: 'https://restcountries.eu/data/dom.svg', + currency: 'Dominican peso' + }, + { + name: 'Ecuador', + capital: 'Quito', + languages: ['Spanish'], + population: 16545799, + flag: 'https://restcountries.eu/data/ecu.svg', + currency: 'United States dollar' + }, + { + name: 'Egypt', + capital: 'Cairo', + languages: ['Arabic'], + population: 91290000, + flag: 'https://restcountries.eu/data/egy.svg', + currency: 'Egyptian pound' + }, + { + name: 'El Salvador', + capital: 'San Salvador', + languages: ['Spanish'], + population: 6520675, + flag: 'https://restcountries.eu/data/slv.svg', + currency: 'United States dollar' + }, + { + name: 'Equatorial Guinea', + capital: 'Malabo', + languages: ['Spanish', 'French'], + population: 1222442, + flag: 'https://restcountries.eu/data/gnq.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Eritrea', + capital: 'Asmara', + languages: ['Tigrinya', 'Arabic', 'English'], + population: 5352000, + flag: 'https://restcountries.eu/data/eri.svg', + currency: 'Eritrean nakfa' + }, + { + name: 'Estonia', + capital: 'Tallinn', + languages: ['Estonian'], + population: 1315944, + flag: 'https://restcountries.eu/data/est.svg', + currency: 'Euro' + }, + { + name: 'Ethiopia', + capital: 'Addis Ababa', + languages: ['Amharic'], + population: 92206005, + flag: 'https://restcountries.eu/data/eth.svg', + currency: 'Ethiopian birr' + }, + { + name: 'Falkland Islands (Malvinas)', + capital: 'Stanley', + languages: ['English'], + population: 2563, + flag: 'https://restcountries.eu/data/flk.svg', + currency: 'Falkland Islands pound' + }, + { + name: 'Faroe Islands', + capital: 'Tórshavn', + languages: ['Faroese'], + population: 49376, + flag: 'https://restcountries.eu/data/fro.svg', + currency: 'Danish krone' + }, + { + name: 'Fiji', + capital: 'Suva', + languages: ['English', 'Fijian', 'Hindi', 'Urdu'], + population: 867000, + flag: 'https://restcountries.eu/data/fji.svg', + currency: 'Fijian dollar' + }, + { + name: 'Finland', + capital: 'Helsinki', + languages: ['Finnish', 'Swedish'], + population: 5491817, + flag: 'https://restcountries.eu/data/fin.svg', + currency: 'Euro' + }, + { + name: 'France', + capital: 'Paris', + languages: ['French'], + population: 66710000, + flag: 'https://restcountries.eu/data/fra.svg', + currency: 'Euro' + }, + { + name: 'French Guiana', + capital: 'Cayenne', + languages: ['French'], + population: 254541, + flag: 'https://restcountries.eu/data/guf.svg', + currency: 'Euro' + }, + { + name: 'French Polynesia', + capital: 'Papeetē', + languages: ['French'], + population: 271800, + flag: 'https://restcountries.eu/data/pyf.svg', + currency: 'CFP franc' + }, + { + name: 'French Southern Territories', + capital: 'Port-aux-Français', + languages: ['French'], + population: 140, + flag: 'https://restcountries.eu/data/atf.svg', + currency: 'Euro' + }, + { + name: 'Gabon', + capital: 'Libreville', + languages: ['French'], + population: 1802278, + flag: 'https://restcountries.eu/data/gab.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Gambia', + capital: 'Banjul', + languages: ['English'], + population: 1882450, + flag: 'https://restcountries.eu/data/gmb.svg', + currency: 'Gambian dalasi' + }, + { + name: 'Georgia', + capital: 'Tbilisi', + languages: ['Georgian'], + population: 3720400, + flag: 'https://restcountries.eu/data/geo.svg', + currency: 'Georgian Lari' + }, + { + name: 'Germany', + capital: 'Berlin', + languages: ['German'], + population: 81770900, + flag: 'https://restcountries.eu/data/deu.svg', + currency: 'Euro' + }, + { + name: 'Ghana', + capital: 'Accra', + languages: ['English'], + population: 27670174, + flag: 'https://restcountries.eu/data/gha.svg', + currency: 'Ghanaian cedi' + }, + { + name: 'Gibraltar', + capital: 'Gibraltar', + languages: ['English'], + population: 33140, + flag: 'https://restcountries.eu/data/gib.svg', + currency: 'Gibraltar pound' + }, + { + name: 'Greece', + capital: 'Athens', + languages: ['Greek (modern)'], + population: 10858018, + flag: 'https://restcountries.eu/data/grc.svg', + currency: 'Euro' + }, + { + name: 'Greenland', + capital: 'Nuuk', + languages: ['Kalaallisut'], + population: 55847, + flag: 'https://restcountries.eu/data/grl.svg', + currency: 'Danish krone' + }, + { + name: 'Grenada', + capital: "St. George's", + languages: ['English'], + population: 103328, + flag: 'https://restcountries.eu/data/grd.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Guadeloupe', + capital: 'Basse-Terre', + languages: ['French'], + population: 400132, + flag: 'https://restcountries.eu/data/glp.svg', + currency: 'Euro' + }, + { + name: 'Guam', + capital: 'Hagåtña', + languages: ['English', 'Chamorro', 'Spanish'], + population: 184200, + flag: 'https://restcountries.eu/data/gum.svg', + currency: 'United States dollar' + }, + { + name: 'Guatemala', + capital: 'Guatemala City', + languages: ['Spanish'], + population: 16176133, + flag: 'https://restcountries.eu/data/gtm.svg', + currency: 'Guatemalan quetzal' + }, + { + name: 'Guernsey', + capital: 'St. Peter Port', + languages: ['English', 'French'], + population: 62999, + flag: 'https://restcountries.eu/data/ggy.svg', + currency: 'British pound' + }, + { + name: 'Guinea', + capital: 'Conakry', + languages: ['French', 'Fula'], + population: 12947000, + flag: 'https://restcountries.eu/data/gin.svg', + currency: 'Guinean franc' + }, + { + name: 'Guinea-Bissau', + capital: 'Bissau', + languages: ['Portuguese'], + population: 1547777, + flag: 'https://restcountries.eu/data/gnb.svg', + currency: 'West African CFA franc' + }, + { + name: 'Guyana', + capital: 'Georgetown', + languages: ['English'], + population: 746900, + flag: 'https://restcountries.eu/data/guy.svg', + currency: 'Guyanese dollar' + }, + { + name: 'Haiti', + capital: 'Port-au-Prince', + languages: ['French', 'Haitian'], + population: 11078033, + flag: 'https://restcountries.eu/data/hti.svg', + currency: 'Haitian gourde' + }, + { + name: 'Heard Island and McDonald Islands', + capital: '', + languages: ['English'], + population: 0, + flag: 'https://restcountries.eu/data/hmd.svg', + currency: 'Australian dollar' + }, + { + name: 'Holy See', + capital: 'Rome', + languages: ['Latin', 'Italian', 'French', 'German'], + population: 451, + flag: 'https://restcountries.eu/data/vat.svg', + currency: 'Euro' + }, + { + name: 'Honduras', + capital: 'Tegucigalpa', + languages: ['Spanish'], + population: 8576532, + flag: 'https://restcountries.eu/data/hnd.svg', + currency: 'Honduran lempira' + }, + { + name: 'Hong Kong', + capital: 'City of Victoria', + languages: ['English', 'Chinese'], + population: 7324300, + flag: 'https://restcountries.eu/data/hkg.svg', + currency: 'Hong Kong dollar' + }, + { + name: 'Hungary', + capital: 'Budapest', + languages: ['Hungarian'], + population: 9823000, + flag: 'https://restcountries.eu/data/hun.svg', + currency: 'Hungarian forint' + }, + { + name: 'Iceland', + capital: 'Reykjavík', + languages: ['Icelandic'], + population: 334300, + flag: 'https://restcountries.eu/data/isl.svg', + currency: 'Icelandic króna' + }, + { + name: 'India', + capital: 'New Delhi', + languages: ['Hindi', 'English'], + population: 1295210000, + flag: 'https://restcountries.eu/data/ind.svg', + currency: 'Indian rupee' + }, + { + name: 'Indonesia', + capital: 'Jakarta', + languages: ['Indonesian'], + population: 258705000, + flag: 'https://restcountries.eu/data/idn.svg', + currency: 'Indonesian rupiah' + }, + { + name: "Côte d'Ivoire", + capital: 'Yamoussoukro', + languages: ['French'], + population: 22671331, + flag: 'https://restcountries.eu/data/civ.svg', + currency: 'West African CFA franc' + }, + { + name: 'Iran (Islamic Republic of)', + capital: 'Tehran', + languages: ['Persian (Farsi)'], + population: 79369900, + flag: 'https://restcountries.eu/data/irn.svg', + currency: 'Iranian rial' + }, + { + name: 'Iraq', + capital: 'Baghdad', + languages: ['Arabic', 'Kurdish'], + population: 37883543, + flag: 'https://restcountries.eu/data/irq.svg', + currency: 'Iraqi dinar' + }, + { + name: 'Ireland', + capital: 'Dublin', + languages: ['Irish', 'English'], + population: 6378000, + flag: 'https://restcountries.eu/data/irl.svg', + currency: 'Euro' + }, + { + name: 'Isle of Man', + capital: 'Douglas', + languages: ['English', 'Manx'], + population: 84497, + flag: 'https://restcountries.eu/data/imn.svg', + currency: 'British pound' + }, + { + name: 'Israel', + capital: 'Jerusalem', + languages: ['Hebrew (modern)', 'Arabic'], + population: 8527400, + flag: 'https://restcountries.eu/data/isr.svg', + currency: 'Israeli new shekel' + }, + { + name: 'Italy', + capital: 'Rome', + languages: ['Italian'], + population: 60665551, + flag: 'https://restcountries.eu/data/ita.svg', + currency: 'Euro' + }, + { + name: 'Jamaica', + capital: 'Kingston', + languages: ['English'], + population: 2723246, + flag: 'https://restcountries.eu/data/jam.svg', + currency: 'Jamaican dollar' + }, + { + name: 'Japan', + capital: 'Tokyo', + languages: ['Japanese'], + population: 126960000, + flag: 'https://restcountries.eu/data/jpn.svg', + currency: 'Japanese yen' + }, + { + name: 'Jersey', + capital: 'Saint Helier', + languages: ['English', 'French'], + population: 100800, + flag: 'https://restcountries.eu/data/jey.svg', + currency: 'British pound' + }, + { + name: 'Jordan', + capital: 'Amman', + languages: ['Arabic'], + population: 9531712, + flag: 'https://restcountries.eu/data/jor.svg', + currency: 'Jordanian dinar' + }, + { + name: 'Kazakhstan', + capital: 'Astana', + languages: ['Kazakh', 'Russian'], + population: 17753200, + flag: 'https://restcountries.eu/data/kaz.svg', + currency: 'Kazakhstani tenge' + }, + { + name: 'Kenya', + capital: 'Nairobi', + languages: ['English', 'Swahili'], + population: 47251000, + flag: 'https://restcountries.eu/data/ken.svg', + currency: 'Kenyan shilling' + }, + { + name: 'Kiribati', + capital: 'South Tarawa', + languages: ['English'], + population: 113400, + flag: 'https://restcountries.eu/data/kir.svg', + currency: 'Australian dollar' + }, + { + name: 'Kuwait', + capital: 'Kuwait City', + languages: ['Arabic'], + population: 4183658, + flag: 'https://restcountries.eu/data/kwt.svg', + currency: 'Kuwaiti dinar' + }, + { + name: 'Kyrgyzstan', + capital: 'Bishkek', + languages: ['Kyrgyz', 'Russian'], + population: 6047800, + flag: 'https://restcountries.eu/data/kgz.svg', + currency: 'Kyrgyzstani som' + }, + { + name: "Lao People's Democratic Republic", + capital: 'Vientiane', + languages: ['Lao'], + population: 6492400, + flag: 'https://restcountries.eu/data/lao.svg', + currency: 'Lao kip' + }, + { + name: 'Latvia', + capital: 'Riga', + languages: ['Latvian'], + population: 1961600, + flag: 'https://restcountries.eu/data/lva.svg', + currency: 'Euro' + }, + { + name: 'Lebanon', + capital: 'Beirut', + languages: ['Arabic', 'French'], + population: 5988000, + flag: 'https://restcountries.eu/data/lbn.svg', + currency: 'Lebanese pound' + }, + { + name: 'Lesotho', + capital: 'Maseru', + languages: ['English', 'Southern Sotho'], + population: 1894194, + flag: 'https://restcountries.eu/data/lso.svg', + currency: 'Lesotho loti' + }, + { + name: 'Liberia', + capital: 'Monrovia', + languages: ['English'], + population: 4615000, + flag: 'https://restcountries.eu/data/lbr.svg', + currency: 'Liberian dollar' + }, + { + name: 'Libya', + capital: 'Tripoli', + languages: ['Arabic'], + population: 6385000, + flag: 'https://restcountries.eu/data/lby.svg', + currency: 'Libyan dinar' + }, + { + name: 'Liechtenstein', + capital: 'Vaduz', + languages: ['German'], + population: 37623, + flag: 'https://restcountries.eu/data/lie.svg', + currency: 'Swiss franc' + }, + { + name: 'Lithuania', + capital: 'Vilnius', + languages: ['Lithuanian'], + population: 2872294, + flag: 'https://restcountries.eu/data/ltu.svg', + currency: 'Euro' + }, + { + name: 'Luxembourg', + capital: 'Luxembourg', + languages: ['French', 'German', 'Luxembourgish'], + population: 576200, + flag: 'https://restcountries.eu/data/lux.svg', + currency: 'Euro' + }, + { + name: 'Macao', + capital: '', + languages: ['Chinese', 'Portuguese'], + population: 649100, + flag: 'https://restcountries.eu/data/mac.svg', + currency: 'Macanese pataca' + }, + { + name: 'Macedonia (the former Yugoslav Republic of)', + capital: 'Skopje', + languages: ['Macedonian'], + population: 2058539, + flag: 'https://restcountries.eu/data/mkd.svg', + currency: 'Macedonian denar' + }, + { + name: 'Madagascar', + capital: 'Antananarivo', + languages: ['French', 'Malagasy'], + population: 22434363, + flag: 'https://restcountries.eu/data/mdg.svg', + currency: 'Malagasy ariary' + }, + { + name: 'Malawi', + capital: 'Lilongwe', + languages: ['English', 'Chichewa'], + population: 16832910, + flag: 'https://restcountries.eu/data/mwi.svg', + currency: 'Malawian kwacha' + }, + { + name: 'Malaysia', + capital: 'Kuala Lumpur', + languages: ['Malaysian'], + population: 31405416, + flag: 'https://restcountries.eu/data/mys.svg', + currency: 'Malaysian ringgit' + }, + { + name: 'Maldives', + capital: 'Malé', + languages: ['Divehi'], + population: 344023, + flag: 'https://restcountries.eu/data/mdv.svg', + currency: 'Maldivian rufiyaa' + }, + { + name: 'Mali', + capital: 'Bamako', + languages: ['French'], + population: 18135000, + flag: 'https://restcountries.eu/data/mli.svg', + currency: 'West African CFA franc' + }, + { + name: 'Malta', + capital: 'Valletta', + languages: ['Maltese', 'English'], + population: 425384, + flag: 'https://restcountries.eu/data/mlt.svg', + currency: 'Euro' + }, + { + name: 'Marshall Islands', + capital: 'Majuro', + languages: ['English', 'Marshallese'], + population: 54880, + flag: 'https://restcountries.eu/data/mhl.svg', + currency: 'United States dollar' + }, + { + name: 'Martinique', + capital: 'Fort-de-France', + languages: ['French'], + population: 378243, + flag: 'https://restcountries.eu/data/mtq.svg', + currency: 'Euro' + }, + { + name: 'Mauritania', + capital: 'Nouakchott', + languages: ['Arabic'], + population: 3718678, + flag: 'https://restcountries.eu/data/mrt.svg', + currency: 'Mauritanian ouguiya' + }, + { + name: 'Mauritius', + capital: 'Port Louis', + languages: ['English'], + population: 1262879, + flag: 'https://restcountries.eu/data/mus.svg', + currency: 'Mauritian rupee' + }, + { + name: 'Mayotte', + capital: 'Mamoudzou', + languages: ['French'], + population: 226915, + flag: 'https://restcountries.eu/data/myt.svg', + currency: 'Euro' + }, + { + name: 'Mexico', + capital: 'Mexico City', + languages: ['Spanish'], + population: 122273473, + flag: 'https://restcountries.eu/data/mex.svg', + currency: 'Mexican peso' + }, + { + name: 'Micronesia (Federated States of)', + capital: 'Palikir', + languages: ['English'], + population: 102800, + flag: 'https://restcountries.eu/data/fsm.svg', + currency: '[D]' + }, + { + name: 'Moldova (Republic of)', + capital: 'Chișinău', + languages: ['Romanian'], + population: 3553100, + flag: 'https://restcountries.eu/data/mda.svg', + currency: 'Moldovan leu' + }, + { + name: 'Monaco', + capital: 'Monaco', + languages: ['French'], + population: 38400, + flag: 'https://restcountries.eu/data/mco.svg', + currency: 'Euro' + }, + { + name: 'Mongolia', + capital: 'Ulan Bator', + languages: ['Mongolian'], + population: 3093100, + flag: 'https://restcountries.eu/data/mng.svg', + currency: 'Mongolian tögrög' + }, + { + name: 'Montenegro', + capital: 'Podgorica', + languages: ['Serbian', 'Bosnian', 'Albanian', 'Croatian'], + population: 621810, + flag: 'https://restcountries.eu/data/mne.svg', + currency: 'Euro' + }, + { + name: 'Montserrat', + capital: 'Plymouth', + languages: ['English'], + population: 4922, + flag: 'https://restcountries.eu/data/msr.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Morocco', + capital: 'Rabat', + languages: ['Arabic'], + population: 33337529, + flag: 'https://restcountries.eu/data/mar.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Mozambique', + capital: 'Maputo', + languages: ['Portuguese'], + population: 26423700, + flag: 'https://restcountries.eu/data/moz.svg', + currency: 'Mozambican metical' + }, + { + name: 'Myanmar', + capital: 'Naypyidaw', + languages: ['Burmese'], + population: 51419420, + flag: 'https://restcountries.eu/data/mmr.svg', + currency: 'Burmese kyat' + }, + { + name: 'Namibia', + capital: 'Windhoek', + languages: ['English', 'Afrikaans'], + population: 2324388, + flag: 'https://restcountries.eu/data/nam.svg', + currency: 'Namibian dollar' + }, + { + name: 'Nauru', + capital: 'Yaren', + languages: ['English', 'Nauruan'], + population: 10084, + flag: 'https://restcountries.eu/data/nru.svg', + currency: 'Australian dollar' + }, + { + name: 'Nepal', + capital: 'Kathmandu', + languages: ['Nepali'], + population: 28431500, + flag: 'https://restcountries.eu/data/npl.svg', + currency: 'Nepalese rupee' + }, + { + name: 'Netherlands', + capital: 'Amsterdam', + languages: ['Dutch'], + population: 17019800, + flag: 'https://restcountries.eu/data/nld.svg', + currency: 'Euro' + }, + { + name: 'New Caledonia', + capital: 'Nouméa', + languages: ['French'], + population: 268767, + flag: 'https://restcountries.eu/data/ncl.svg', + currency: 'CFP franc' + }, + { + name: 'New Zealand', + capital: 'Wellington', + languages: ['English', 'Māori'], + population: 4697854, + flag: 'https://restcountries.eu/data/nzl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Nicaragua', + capital: 'Managua', + languages: ['Spanish'], + population: 6262703, + flag: 'https://restcountries.eu/data/nic.svg', + currency: 'Nicaraguan córdoba' + }, + { + name: 'Niger', + capital: 'Niamey', + languages: ['French'], + population: 20715000, + flag: 'https://restcountries.eu/data/ner.svg', + currency: 'West African CFA franc' + }, + { + name: 'Nigeria', + capital: 'Abuja', + languages: ['English'], + population: 186988000, + flag: 'https://restcountries.eu/data/nga.svg', + currency: 'Nigerian naira' + }, + { + name: 'Niue', + capital: 'Alofi', + languages: ['English'], + population: 1470, + flag: 'https://restcountries.eu/data/niu.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Norfolk Island', + capital: 'Kingston', + languages: ['English'], + population: 2302, + flag: 'https://restcountries.eu/data/nfk.svg', + currency: 'Australian dollar' + }, + { + name: "Korea (Democratic People's Republic of)", + capital: 'Pyongyang', + languages: ['Korean'], + population: 25281000, + flag: 'https://restcountries.eu/data/prk.svg', + currency: 'North Korean won' + }, + { + name: 'Northern Mariana Islands', + capital: 'Saipan', + languages: ['English', 'Chamorro'], + population: 56940, + flag: 'https://restcountries.eu/data/mnp.svg', + currency: 'United States dollar' + }, + { + name: 'Norway', + capital: 'Oslo', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 5223256, + flag: 'https://restcountries.eu/data/nor.svg', + currency: 'Norwegian krone' + }, + { + name: 'Oman', + capital: 'Muscat', + languages: ['Arabic'], + population: 4420133, + flag: 'https://restcountries.eu/data/omn.svg', + currency: 'Omani rial' + }, + { + name: 'Pakistan', + capital: 'Islamabad', + languages: ['English', 'Urdu'], + population: 194125062, + flag: 'https://restcountries.eu/data/pak.svg', + currency: 'Pakistani rupee' + }, + { + name: 'Palau', + capital: 'Ngerulmud', + languages: ['English'], + population: 17950, + flag: 'https://restcountries.eu/data/plw.svg', + currency: '[E]' + }, + { + name: 'Palestine, State of', + capital: 'Ramallah', + languages: ['Arabic'], + population: 4682467, + flag: 'https://restcountries.eu/data/pse.svg', + currency: 'Israeli new sheqel' + }, + { + name: 'Panama', + capital: 'Panama City', + languages: ['Spanish'], + population: 3814672, + flag: 'https://restcountries.eu/data/pan.svg', + currency: 'Panamanian balboa' + }, + { + name: 'Papua New Guinea', + capital: 'Port Moresby', + languages: ['English'], + population: 8083700, + flag: 'https://restcountries.eu/data/png.svg', + currency: 'Papua New Guinean kina' + }, + { + name: 'Paraguay', + capital: 'Asunción', + languages: ['Spanish', 'Guaraní'], + population: 6854536, + flag: 'https://restcountries.eu/data/pry.svg', + currency: 'Paraguayan guaraní' + }, + { + name: 'Peru', + capital: 'Lima', + languages: ['Spanish'], + population: 31488700, + flag: 'https://restcountries.eu/data/per.svg', + currency: 'Peruvian sol' + }, + { + name: 'Philippines', + capital: 'Manila', + languages: ['English'], + population: 103279800, + flag: 'https://restcountries.eu/data/phl.svg', + currency: 'Philippine peso' + }, + { + name: 'Pitcairn', + capital: 'Adamstown', + languages: ['English'], + population: 56, + flag: 'https://restcountries.eu/data/pcn.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Poland', + capital: 'Warsaw', + languages: ['Polish'], + population: 38437239, + flag: 'https://restcountries.eu/data/pol.svg', + currency: 'Polish złoty' + }, + { + name: 'Portugal', + capital: 'Lisbon', + languages: ['Portuguese'], + population: 10374822, + flag: 'https://restcountries.eu/data/prt.svg', + currency: 'Euro' + }, + { + name: 'Puerto Rico', + capital: 'San Juan', + languages: ['Spanish', 'English'], + population: 3474182, + flag: 'https://restcountries.eu/data/pri.svg', + currency: 'United States dollar' + }, + { + name: 'Qatar', + capital: 'Doha', + languages: ['Arabic'], + population: 2587564, + flag: 'https://restcountries.eu/data/qat.svg', + currency: 'Qatari riyal' + }, + { + name: 'Republic of Kosovo', + capital: 'Pristina', + languages: ['Albanian', 'Serbian'], + population: 1733842, + flag: 'https://restcountries.eu/data/kos.svg', + currency: 'Euro' + }, + { + name: 'Réunion', + capital: 'Saint-Denis', + languages: ['French'], + population: 840974, + flag: 'https://restcountries.eu/data/reu.svg', + currency: 'Euro' + }, + { + name: 'Romania', + capital: 'Bucharest', + languages: ['Romanian'], + population: 19861408, + flag: 'https://restcountries.eu/data/rou.svg', + currency: 'Romanian leu' + }, + { + name: 'Russian Federation', + capital: 'Moscow', + languages: ['Russian'], + population: 146599183, + flag: 'https://restcountries.eu/data/rus.svg', + currency: 'Russian ruble' + }, + { + name: 'Rwanda', + capital: 'Kigali', + languages: ['Kinyarwanda', 'English', 'French'], + population: 11553188, + flag: 'https://restcountries.eu/data/rwa.svg', + currency: 'Rwandan franc' + }, + { + name: 'Saint Barthélemy', + capital: 'Gustavia', + languages: ['French'], + population: 9417, + flag: 'https://restcountries.eu/data/blm.svg', + currency: 'Euro' + }, + { + name: 'Saint Helena, Ascension and Tristan da Cunha', + capital: 'Jamestown', + languages: ['English'], + population: 4255, + flag: 'https://restcountries.eu/data/shn.svg', + currency: 'Saint Helena pound' + }, + { + name: 'Saint Kitts and Nevis', + capital: 'Basseterre', + languages: ['English'], + population: 46204, + flag: 'https://restcountries.eu/data/kna.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Lucia', + capital: 'Castries', + languages: ['English'], + population: 186000, + flag: 'https://restcountries.eu/data/lca.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Martin (French part)', + capital: 'Marigot', + languages: ['English', 'French', 'Dutch'], + population: 36979, + flag: 'https://restcountries.eu/data/maf.svg', + currency: 'Euro' + }, + { + name: 'Saint Pierre and Miquelon', + capital: 'Saint-Pierre', + languages: ['French'], + population: 6069, + flag: 'https://restcountries.eu/data/spm.svg', + currency: 'Euro' + }, + { + name: 'Saint Vincent and the Grenadines', + capital: 'Kingstown', + languages: ['English'], + population: 109991, + flag: 'https://restcountries.eu/data/vct.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Samoa', + capital: 'Apia', + languages: ['Samoan', 'English'], + population: 194899, + flag: 'https://restcountries.eu/data/wsm.svg', + currency: 'Samoan tālā' + }, + { + name: 'San Marino', + capital: 'City of San Marino', + languages: ['Italian'], + population: 33005, + flag: 'https://restcountries.eu/data/smr.svg', + currency: 'Euro' + }, + { + name: 'Sao Tome and Principe', + capital: 'São Tomé', + languages: ['Portuguese'], + population: 187356, + flag: 'https://restcountries.eu/data/stp.svg', + currency: 'São Tomé and Príncipe dobra' + }, + { + name: 'Saudi Arabia', + capital: 'Riyadh', + languages: ['Arabic'], + population: 32248200, + flag: 'https://restcountries.eu/data/sau.svg', + currency: 'Saudi riyal' + }, + { + name: 'Senegal', + capital: 'Dakar', + languages: ['French'], + population: 14799859, + flag: 'https://restcountries.eu/data/sen.svg', + currency: 'West African CFA franc' + }, + { + name: 'Serbia', + capital: 'Belgrade', + languages: ['Serbian'], + population: 7076372, + flag: 'https://restcountries.eu/data/srb.svg', + currency: 'Serbian dinar' + }, + { + name: 'Seychelles', + capital: 'Victoria', + languages: ['French', 'English'], + population: 91400, + flag: 'https://restcountries.eu/data/syc.svg', + currency: 'Seychellois rupee' + }, + { + name: 'Sierra Leone', + capital: 'Freetown', + languages: ['English'], + population: 7075641, + flag: 'https://restcountries.eu/data/sle.svg', + currency: 'Sierra Leonean leone' + }, + { + name: 'Singapore', + capital: 'Singapore', + languages: ['English', 'Malay', 'Tamil', 'Chinese'], + population: 5535000, + flag: 'https://restcountries.eu/data/sgp.svg', + currency: 'Brunei dollar' + }, + { + name: 'Sint Maarten (Dutch part)', + capital: 'Philipsburg', + languages: ['Dutch', 'English'], + population: 38247, + flag: 'https://restcountries.eu/data/sxm.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Slovakia', + capital: 'Bratislava', + languages: ['Slovak'], + population: 5426252, + flag: 'https://restcountries.eu/data/svk.svg', + currency: 'Euro' + }, + { + name: 'Slovenia', + capital: 'Ljubljana', + languages: ['Slovene'], + population: 2064188, + flag: 'https://restcountries.eu/data/svn.svg', + currency: 'Euro' + }, + { + name: 'Solomon Islands', + capital: 'Honiara', + languages: ['English'], + population: 642000, + flag: 'https://restcountries.eu/data/slb.svg', + currency: 'Solomon Islands dollar' + }, + { + name: 'Somalia', + capital: 'Mogadishu', + languages: ['Somali', 'Arabic'], + population: 11079000, + flag: 'https://restcountries.eu/data/som.svg', + currency: 'Somali shilling' + }, + { + name: 'South Africa', + capital: 'Pretoria', + languages: [ + 'Afrikaans', + 'English', + 'Southern Ndebele', + 'Southern Sotho', + 'Swati', + 'Tswana', + 'Tsonga', + 'Venda', + 'Xhosa', + 'Zulu' + ], + population: 55653654, + flag: 'https://restcountries.eu/data/zaf.svg', + currency: 'South African rand' + }, + { + name: 'South Georgia and the South Sandwich Islands', + capital: 'King Edward Point', + languages: ['English'], + population: 30, + flag: 'https://restcountries.eu/data/sgs.svg', + currency: 'British pound' + }, + { + name: 'Korea (Republic of)', + capital: 'Seoul', + languages: ['Korean'], + population: 50801405, + flag: 'https://restcountries.eu/data/kor.svg', + currency: 'South Korean won' + }, + { + name: 'South Sudan', + capital: 'Juba', + languages: ['English'], + population: 12131000, + flag: 'https://restcountries.eu/data/ssd.svg', + currency: 'South Sudanese pound' + }, + { + name: 'Spain', + capital: 'Madrid', + languages: ['Spanish'], + population: 46438422, + flag: 'https://restcountries.eu/data/esp.svg', + currency: 'Euro' + }, + { + name: 'Sri Lanka', + capital: 'Colombo', + languages: ['Sinhalese', 'Tamil'], + population: 20966000, + flag: 'https://restcountries.eu/data/lka.svg', + currency: 'Sri Lankan rupee' + }, + { + name: 'Sudan', + capital: 'Khartoum', + languages: ['Arabic', 'English'], + population: 39598700, + flag: 'https://restcountries.eu/data/sdn.svg', + currency: 'Sudanese pound' + }, + { + name: 'Suriname', + capital: 'Paramaribo', + languages: ['Dutch'], + population: 541638, + flag: 'https://restcountries.eu/data/sur.svg', + currency: 'Surinamese dollar' + }, + { + name: 'Svalbard and Jan Mayen', + capital: 'Longyearbyen', + languages: ['Norwegian'], + population: 2562, + flag: 'https://restcountries.eu/data/sjm.svg', + currency: 'Norwegian krone' + }, + { + name: 'Swaziland', + capital: 'Lobamba', + languages: ['English', 'Swati'], + population: 1132657, + flag: 'https://restcountries.eu/data/swz.svg', + currency: 'Swazi lilangeni' + }, + { + name: 'Sweden', + capital: 'Stockholm', + languages: ['Swedish'], + population: 9894888, + flag: 'https://restcountries.eu/data/swe.svg', + currency: 'Swedish krona' + }, + { + name: 'Switzerland', + capital: 'Bern', + languages: ['German', 'French', 'Italian'], + population: 8341600, + flag: 'https://restcountries.eu/data/che.svg', + currency: 'Swiss franc' + }, + { + name: 'Syrian Arab Republic', + capital: 'Damascus', + languages: ['Arabic'], + population: 18564000, + flag: 'https://restcountries.eu/data/syr.svg', + currency: 'Syrian pound' + }, + { + name: 'Taiwan', + capital: 'Taipei', + languages: ['Chinese'], + population: 23503349, + flag: 'https://restcountries.eu/data/twn.svg', + currency: 'New Taiwan dollar' + }, + { + name: 'Tajikistan', + capital: 'Dushanbe', + languages: ['Tajik', 'Russian'], + population: 8593600, + flag: 'https://restcountries.eu/data/tjk.svg', + currency: 'Tajikistani somoni' + }, + { + name: 'Tanzania, United Republic of', + capital: 'Dodoma', + languages: ['Swahili', 'English'], + population: 55155000, + flag: 'https://restcountries.eu/data/tza.svg', + currency: 'Tanzanian shilling' + }, + { + name: 'Thailand', + capital: 'Bangkok', + languages: ['Thai'], + population: 65327652, + flag: 'https://restcountries.eu/data/tha.svg', + currency: 'Thai baht' + }, + { + name: 'Timor-Leste', + capital: 'Dili', + languages: ['Portuguese'], + population: 1167242, + flag: 'https://restcountries.eu/data/tls.svg', + currency: 'United States dollar' + }, + { + name: 'Togo', + capital: 'Lomé', + languages: ['French'], + population: 7143000, + flag: 'https://restcountries.eu/data/tgo.svg', + currency: 'West African CFA franc' + }, + { + name: 'Tokelau', + capital: 'Fakaofo', + languages: ['English'], + population: 1411, + flag: 'https://restcountries.eu/data/tkl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Tonga', + capital: "Nuku'alofa", + languages: ['English', 'Tonga (Tonga Islands)'], + population: 103252, + flag: 'https://restcountries.eu/data/ton.svg', + currency: 'Tongan paʻanga' + }, + { + name: 'Trinidad and Tobago', + capital: 'Port of Spain', + languages: ['English'], + population: 1349667, + flag: 'https://restcountries.eu/data/tto.svg', + currency: 'Trinidad and Tobago dollar' + }, + { + name: 'Tunisia', + capital: 'Tunis', + languages: ['Arabic'], + population: 11154400, + flag: 'https://restcountries.eu/data/tun.svg', + currency: 'Tunisian dinar' + }, + { + name: 'Turkey', + capital: 'Ankara', + languages: ['Turkish'], + population: 78741053, + flag: 'https://restcountries.eu/data/tur.svg', + currency: 'Turkish lira' + }, + { + name: 'Turkmenistan', + capital: 'Ashgabat', + languages: ['Turkmen', 'Russian'], + population: 4751120, + flag: 'https://restcountries.eu/data/tkm.svg', + currency: 'Turkmenistan manat' + }, + { + name: 'Turks and Caicos Islands', + capital: 'Cockburn Town', + languages: ['English'], + population: 31458, + flag: 'https://restcountries.eu/data/tca.svg', + currency: 'United States dollar' + }, + { + name: 'Tuvalu', + capital: 'Funafuti', + languages: ['English'], + population: 10640, + flag: 'https://restcountries.eu/data/tuv.svg', + currency: 'Australian dollar' + }, + { + name: 'Uganda', + capital: 'Kampala', + languages: ['English', 'Swahili'], + population: 33860700, + flag: 'https://restcountries.eu/data/uga.svg', + currency: 'Ugandan shilling' + }, + { + name: 'Ukraine', + capital: 'Kiev', + languages: ['Ukrainian'], + population: 42692393, + flag: 'https://restcountries.eu/data/ukr.svg', + currency: 'Ukrainian hryvnia' + }, + { + name: 'United Arab Emirates', + capital: 'Abu Dhabi', + languages: ['Arabic'], + population: 9856000, + flag: 'https://restcountries.eu/data/are.svg', + currency: 'United Arab Emirates dirham' + }, + { + name: 'United Kingdom of Great Britain and Northern Ireland', + capital: 'London', + languages: ['English'], + population: 65110000, + flag: 'https://restcountries.eu/data/gbr.svg', + currency: 'British pound' + }, + { + name: 'United States of America', + capital: 'Washington, D.C.', + languages: ['English'], + population: 323947000, + flag: 'https://restcountries.eu/data/usa.svg', + currency: 'United States dollar' + }, + { + name: 'Uruguay', + capital: 'Montevideo', + languages: ['Spanish'], + population: 3480222, + flag: 'https://restcountries.eu/data/ury.svg', + currency: 'Uruguayan peso' + }, + { + name: 'Uzbekistan', + capital: 'Tashkent', + languages: ['Uzbek', 'Russian'], + population: 31576400, + flag: 'https://restcountries.eu/data/uzb.svg', + currency: "Uzbekistani so'm" + }, + { + name: 'Vanuatu', + capital: 'Port Vila', + languages: ['Bislama', 'English', 'French'], + population: 277500, + flag: 'https://restcountries.eu/data/vut.svg', + currency: 'Vanuatu vatu' + }, + { + name: 'Venezuela (Bolivarian Republic of)', + capital: 'Caracas', + languages: ['Spanish'], + population: 31028700, + flag: 'https://restcountries.eu/data/ven.svg', + currency: 'Venezuelan bolívar' + }, + { + name: 'Viet Nam', + capital: 'Hanoi', + languages: ['Vietnamese'], + population: 92700000, + flag: 'https://restcountries.eu/data/vnm.svg', + currency: 'Vietnamese đồng' + }, + { + name: 'Wallis and Futuna', + capital: 'Mata-Utu', + languages: ['French'], + population: 11750, + flag: 'https://restcountries.eu/data/wlf.svg', + currency: 'CFP franc' + }, + { + name: 'Western Sahara', + capital: 'El Aaiún', + languages: ['Spanish'], + population: 510713, + flag: 'https://restcountries.eu/data/esh.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Yemen', + capital: "Sana'a", + languages: ['Arabic'], + population: 27478000, + flag: 'https://restcountries.eu/data/yem.svg', + currency: 'Yemeni rial' + }, + { + name: 'Zambia', + capital: 'Lusaka', + languages: ['English'], + population: 15933883, + flag: 'https://restcountries.eu/data/zmb.svg', + currency: 'Zambian kwacha' + }, + { + name: 'Zimbabwe', + capital: 'Harare', + languages: ['English', 'Shona', 'Northern Ndebele'], + population: 14240168, + flag: 'https://restcountries.eu/data/zwe.svg', + currency: 'Botswana pula' + } +] diff --git a/16_Day/16_day_starter/index.html b/16_Day/16_day_starter/index.html new file mode 100644 index 0000000..53d732a --- /dev/null +++ b/16_Day/16_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:16 Day + + + +

30DaysOfJavaScript:16 Day

+

JSON

+ + + + + + + \ No newline at end of file diff --git a/16_Day/16_day_starter/scripts/main.js b/16_Day/16_day_starter/scripts/main.js new file mode 100644 index 0000000..c6045c8 --- /dev/null +++ b/16_Day/16_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file diff --git a/images/banners/Day -1 – 16.png b/images/banners/day_1_16.png similarity index 100% rename from images/banners/Day -1 – 16.png rename to images/banners/day_1_16.png diff --git a/images/banners/Day -1 – 17.png b/images/banners/day_1_17.png similarity index 100% rename from images/banners/Day -1 – 17.png rename to images/banners/day_1_17.png diff --git a/images/banners/Day -1 – 18.png b/images/banners/day_1_18.png similarity index 100% rename from images/banners/Day -1 – 18.png rename to images/banners/day_1_18.png diff --git a/images/banners/Day -1 – 19.png b/images/banners/day_1_19.png similarity index 100% rename from images/banners/Day -1 – 19.png rename to images/banners/day_1_19.png diff --git a/images/banners/Day -1 – 20.png b/images/banners/day_1_20.png similarity index 100% rename from images/banners/Day -1 – 20.png rename to images/banners/day_1_20.png diff --git a/index.html b/index.html new file mode 100644 index 0000000..6199e3c --- /dev/null +++ b/index.html @@ -0,0 +1,109 @@ + + + + + Document Object Model:30 Days Of JavaScript + + + + + + +

Body Mass Index Calculator

+ + + + + + + + + \ No newline at end of file From 546fb71cd3be81a1997c5022fe2a76e783c0af0d Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Fri, 17 Jan 2020 22:15:11 +0200 Subject: [PATCH 16/21] day 16 fixes --- 16_Day/16_day_json.md | 122 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/16_Day/16_day_json.md b/16_Day/16_day_json.md index dafb357..25303b4 100644 --- a/16_Day/16_day_json.md +++ b/16_Day/16_day_json.md @@ -464,12 +464,134 @@ console.log(text) ## Exercises +```js +const skills = ['HTML', 'CSS', 'JS', 'React','Node', 'Python'] +let age = 250; +let isMarried = true +const student = { + firstName:'Asabeneh', + lastName:'Yetayehe', + age:250, + isMarried:true, + skills:['HTML', 'CSS', 'JS', 'React','Node', 'Python', ] +} +const text = `{ + "Alex": { + "email": "alex@alex.com", + "skills": [ + "HTML", + "CSS", + "JavaScript" + ], + "age": 20, + "isLoggedIn": false, + "points": 30 + }, + "Asab": { + "email": "asab@asab.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "Redux", + "MongoDB", + "Express", + "React", + "Node" + ], + "age": 25, + "isLoggedIn": false, + "points": 50 + }, + "Brook": { + "email": "daniel@daniel.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "React", + "Redux" + ], + "age": 30, + "isLoggedIn": true, + "points": 50 + }, + "Daniel": { + "email": "daniel@alex.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "Python" + ], + "age": 20, + "isLoggedIn": false, + "points": 40 + }, + "John": { + "email": "john@john.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "React", + "Redux", + "Node.js" + ], + "age": 20, + "isLoggedIn": true, + "points": 50 + }, + "Thomas": { + "email": "thomas@thomas.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "React" + ], + "age": 20, + "isLoggedIn": false, + "points": 40 + }, + "Paul": { + "email": "paul@paul.com", + "skills": [ + "HTML", + "CSS", + "JavaScript", + "MongoDB", + "Express", + "React", + "Node" + ], + "age": 20, + "isLoggedIn": false, + "points": 40 + } +} +` +``` + ### Exercises Level 1 +1. Change skills array to JSON using JSON.stringify() + +1. Stringify the age variable + +1. Stringify the isMarried variable + +1. Stringify the student object + ### Exercises Level 2 +1. Stringify the students object with only firstName, lastName and skills properties + ### Exercises Level 3 +1. Parse the *text* JSON to object. +2. Find the the user who has many skills. + 🎉 CONGRATULATIONS ! 🎉 [<< Day 15](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) | [Day 17>>](#) \ No newline at end of file From 46bad2b21f07a0e7c5374bde1765c42fbf2389bd Mon Sep 17 00:00:00 2001 From: Asabeneh Date: Sat, 18 Jan 2020 00:38:13 +0200 Subject: [PATCH 17/21] day 17 --- .gitignore | 1 - 16_Day/16_day_json.md | 6 +- 17_Day/17_day_starter/data/countries_data.js | 2013 ++++++++++++++++++ 17_Day/17_day_starter/index.html | 17 + 17_Day/17_day_starter/scripts/main.js | 2 + 17_Day/17_day_web_storage.md | 233 ++ images/local_storage.png | Bin 0 -> 239434 bytes images/web_storage.png | Bin 0 -> 187049 bytes 8 files changed, 2268 insertions(+), 4 deletions(-) create mode 100644 17_Day/17_day_starter/data/countries_data.js create mode 100644 17_Day/17_day_starter/index.html create mode 100644 17_Day/17_day_starter/scripts/main.js create mode 100644 17_Day/17_day_web_storage.md create mode 100644 images/local_storage.png create mode 100644 images/web_storage.png diff --git a/.gitignore b/.gitignore index 107528e..34cc674 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,6 @@ day9.md day10.md 01_02_03_days_backup.md test.md -17_Day 18_Day 19_Day 20_Day diff --git a/16_Day/16_day_json.md b/16_Day/16_day_json.md index 25303b4..b466001 100644 --- a/16_Day/16_day_json.md +++ b/16_Day/16_day_json.md @@ -14,7 +14,7 @@ -[<< Day 15](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) | [Day 17>>](#) +[<< Day 15](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) | [Day 17 >>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/17_Day/17_day_web_storage.md) ![Thirty Days Of JavaScript](../images/banners/day_1_16.png) @@ -460,7 +460,7 @@ console.log(text) } ``` -🌕 You are extraordinary Now, you knew a light-weight data format which you may use to store data or to send it an HTTP server. You are 16 steps a head to your way to greatness. Now do some exercises for your brain and for your muscle. +🌕 You are extraordinary. Now, you knew a light-weight data format which you may use to store data or to send it an HTTP server. You are 16 steps a head to your way to greatness. Now do some exercises for your brain and for your muscle. ## Exercises @@ -594,4 +594,4 @@ const text = `{ 🎉 CONGRATULATIONS ! 🎉 -[<< Day 15](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) | [Day 17>>](#) \ No newline at end of file +[<< Day 15](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) | [Day 17 >>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/17_Day/17_day_web_storage.md) \ No newline at end of file diff --git a/17_Day/17_day_starter/data/countries_data.js b/17_Day/17_day_starter/data/countries_data.js new file mode 100644 index 0000000..92acddd --- /dev/null +++ b/17_Day/17_day_starter/data/countries_data.js @@ -0,0 +1,2013 @@ +const countries = [ + { + name: 'Afghanistan', + capital: 'Kabul', + languages: ['Pashto', 'Uzbek', 'Turkmen'], + population: 27657145, + flag: 'https://restcountries.eu/data/afg.svg', + currency: 'Afghan afghani' + }, + { + name: 'Åland Islands', + capital: 'Mariehamn', + languages: ['Swedish'], + population: 28875, + flag: 'https://restcountries.eu/data/ala.svg', + currency: 'Euro' + }, + { + name: 'Albania', + capital: 'Tirana', + languages: ['Albanian'], + population: 2886026, + flag: 'https://restcountries.eu/data/alb.svg', + currency: 'Albanian lek' + }, + { + name: 'Algeria', + capital: 'Algiers', + languages: ['Arabic'], + population: 40400000, + flag: 'https://restcountries.eu/data/dza.svg', + currency: 'Algerian dinar' + }, + { + name: 'American Samoa', + capital: 'Pago Pago', + languages: ['English', 'Samoan'], + population: 57100, + flag: 'https://restcountries.eu/data/asm.svg', + currency: 'United State Dollar' + }, + { + name: 'Andorra', + capital: 'Andorra la Vella', + languages: ['Catalan'], + population: 78014, + flag: 'https://restcountries.eu/data/and.svg', + currency: 'Euro' + }, + { + name: 'Angola', + capital: 'Luanda', + languages: ['Portuguese'], + population: 25868000, + flag: 'https://restcountries.eu/data/ago.svg', + currency: 'Angolan kwanza' + }, + { + name: 'Anguilla', + capital: 'The Valley', + languages: ['English'], + population: 13452, + flag: 'https://restcountries.eu/data/aia.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Antarctica', + capital: '', + languages: ['English', 'Russian'], + population: 1000, + flag: 'https://restcountries.eu/data/ata.svg', + currency: 'Australian dollar' + }, + { + name: 'Antigua and Barbuda', + capital: "Saint John's", + languages: ['English'], + population: 86295, + flag: 'https://restcountries.eu/data/atg.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Argentina', + capital: 'Buenos Aires', + languages: ['Spanish', 'Guaraní'], + population: 43590400, + flag: 'https://restcountries.eu/data/arg.svg', + currency: 'Argentine peso' + }, + { + name: 'Armenia', + capital: 'Yerevan', + languages: ['Armenian', 'Russian'], + population: 2994400, + flag: 'https://restcountries.eu/data/arm.svg', + currency: 'Armenian dram' + }, + { + name: 'Aruba', + capital: 'Oranjestad', + languages: ['Dutch', '(Eastern) Punjabi'], + population: 107394, + flag: 'https://restcountries.eu/data/abw.svg', + currency: 'Aruban florin' + }, + { + name: 'Australia', + capital: 'Canberra', + languages: ['English'], + population: 24117360, + flag: 'https://restcountries.eu/data/aus.svg', + currency: 'Australian dollar' + }, + { + name: 'Austria', + capital: 'Vienna', + languages: ['German'], + population: 8725931, + flag: 'https://restcountries.eu/data/aut.svg', + currency: 'Euro' + }, + { + name: 'Azerbaijan', + capital: 'Baku', + languages: ['Azerbaijani'], + population: 9730500, + flag: 'https://restcountries.eu/data/aze.svg', + currency: 'Azerbaijani manat' + }, + { + name: 'Bahamas', + capital: 'Nassau', + languages: ['English'], + population: 378040, + flag: 'https://restcountries.eu/data/bhs.svg', + currency: 'Bahamian dollar' + }, + { + name: 'Bahrain', + capital: 'Manama', + languages: ['Arabic'], + population: 1404900, + flag: 'https://restcountries.eu/data/bhr.svg', + currency: 'Bahraini dinar' + }, + { + name: 'Bangladesh', + capital: 'Dhaka', + languages: ['Bengali'], + population: 161006790, + flag: 'https://restcountries.eu/data/bgd.svg', + currency: 'Bangladeshi taka' + }, + { + name: 'Barbados', + capital: 'Bridgetown', + languages: ['English'], + population: 285000, + flag: 'https://restcountries.eu/data/brb.svg', + currency: 'Barbadian dollar' + }, + { + name: 'Belarus', + capital: 'Minsk', + languages: ['Belarusian', 'Russian'], + population: 9498700, + flag: 'https://restcountries.eu/data/blr.svg', + currency: 'New Belarusian ruble' + }, + { + name: 'Belgium', + capital: 'Brussels', + languages: ['Dutch', 'French', 'German'], + population: 11319511, + flag: 'https://restcountries.eu/data/bel.svg', + currency: 'Euro' + }, + { + name: 'Belize', + capital: 'Belmopan', + languages: ['English', 'Spanish'], + population: 370300, + flag: 'https://restcountries.eu/data/blz.svg', + currency: 'Belize dollar' + }, + { + name: 'Benin', + capital: 'Porto-Novo', + languages: ['French'], + population: 10653654, + flag: 'https://restcountries.eu/data/ben.svg', + currency: 'West African CFA franc' + }, + { + name: 'Bermuda', + capital: 'Hamilton', + languages: ['English'], + population: 61954, + flag: 'https://restcountries.eu/data/bmu.svg', + currency: 'Bermudian dollar' + }, + { + name: 'Bhutan', + capital: 'Thimphu', + languages: ['Dzongkha'], + population: 775620, + flag: 'https://restcountries.eu/data/btn.svg', + currency: 'Bhutanese ngultrum' + }, + { + name: 'Bolivia (Plurinational State of)', + capital: 'Sucre', + languages: ['Spanish', 'Aymara', 'Quechua'], + population: 10985059, + flag: 'https://restcountries.eu/data/bol.svg', + currency: 'Bolivian boliviano' + }, + { + name: 'Bonaire, Sint Eustatius and Saba', + capital: 'Kralendijk', + languages: ['Dutch'], + population: 17408, + flag: 'https://restcountries.eu/data/bes.svg', + currency: 'United States dollar' + }, + { + name: 'Bosnia and Herzegovina', + capital: 'Sarajevo', + languages: ['Bosnian', 'Croatian', 'Serbian'], + population: 3531159, + flag: 'https://restcountries.eu/data/bih.svg', + currency: 'Bosnia and Herzegovina convertible mark' + }, + { + name: 'Botswana', + capital: 'Gaborone', + languages: ['English', 'Tswana'], + population: 2141206, + flag: 'https://restcountries.eu/data/bwa.svg', + currency: 'Botswana pula' + }, + { + name: 'Bouvet Island', + capital: '', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 0, + flag: 'https://restcountries.eu/data/bvt.svg', + currency: 'Norwegian krone' + }, + { + name: 'Brazil', + capital: 'Brasília', + languages: ['Portuguese'], + population: 206135893, + flag: 'https://restcountries.eu/data/bra.svg', + currency: 'Brazilian real' + }, + { + name: 'British Indian Ocean Territory', + capital: 'Diego Garcia', + languages: ['English'], + population: 3000, + flag: 'https://restcountries.eu/data/iot.svg', + currency: 'United States dollar' + }, + { + name: 'United States Minor Outlying Islands', + capital: '', + languages: ['English'], + population: 300, + flag: 'https://restcountries.eu/data/umi.svg', + currency: 'United States Dollar' + }, + { + name: 'Virgin Islands (British)', + capital: 'Road Town', + languages: ['English'], + population: 28514, + flag: 'https://restcountries.eu/data/vgb.svg', + currency: '[D]' + }, + { + name: 'Virgin Islands (U.S.)', + capital: 'Charlotte Amalie', + languages: ['English'], + population: 114743, + flag: 'https://restcountries.eu/data/vir.svg', + currency: 'United States dollar' + }, + { + name: 'Brunei Darussalam', + capital: 'Bandar Seri Begawan', + languages: ['Malay'], + population: 411900, + flag: 'https://restcountries.eu/data/brn.svg', + currency: 'Brunei dollar' + }, + { + name: 'Bulgaria', + capital: 'Sofia', + languages: ['Bulgarian'], + population: 7153784, + flag: 'https://restcountries.eu/data/bgr.svg', + currency: 'Bulgarian lev' + }, + { + name: 'Burkina Faso', + capital: 'Ouagadougou', + languages: ['French', 'Fula'], + population: 19034397, + flag: 'https://restcountries.eu/data/bfa.svg', + currency: 'West African CFA franc' + }, + { + name: 'Burundi', + capital: 'Bujumbura', + languages: ['French', 'Kirundi'], + population: 10114505, + flag: 'https://restcountries.eu/data/bdi.svg', + currency: 'Burundian franc' + }, + { + name: 'Cambodia', + capital: 'Phnom Penh', + languages: ['Khmer'], + population: 15626444, + flag: 'https://restcountries.eu/data/khm.svg', + currency: 'Cambodian riel' + }, + { + name: 'Cameroon', + capital: 'Yaoundé', + languages: ['English', 'French'], + population: 22709892, + flag: 'https://restcountries.eu/data/cmr.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Canada', + capital: 'Ottawa', + languages: ['English', 'French'], + population: 36155487, + flag: 'https://restcountries.eu/data/can.svg', + currency: 'Canadian dollar' + }, + { + name: 'Cabo Verde', + capital: 'Praia', + languages: ['Portuguese'], + population: 531239, + flag: 'https://restcountries.eu/data/cpv.svg', + currency: 'Cape Verdean escudo' + }, + { + name: 'Cayman Islands', + capital: 'George Town', + languages: ['English'], + population: 58238, + flag: 'https://restcountries.eu/data/cym.svg', + currency: 'Cayman Islands dollar' + }, + { + name: 'Central African Republic', + capital: 'Bangui', + languages: ['French', 'Sango'], + population: 4998000, + flag: 'https://restcountries.eu/data/caf.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chad', + capital: "N'Djamena", + languages: ['French', 'Arabic'], + population: 14497000, + flag: 'https://restcountries.eu/data/tcd.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Chile', + capital: 'Santiago', + languages: ['Spanish'], + population: 18191900, + flag: 'https://restcountries.eu/data/chl.svg', + currency: 'Chilean peso' + }, + { + name: 'China', + capital: 'Beijing', + languages: ['Chinese'], + population: 1377422166, + flag: 'https://restcountries.eu/data/chn.svg', + currency: 'Chinese yuan' + }, + { + name: 'Christmas Island', + capital: 'Flying Fish Cove', + languages: ['English'], + population: 2072, + flag: 'https://restcountries.eu/data/cxr.svg', + currency: 'Australian dollar' + }, + { + name: 'Cocos (Keeling) Islands', + capital: 'West Island', + languages: ['English'], + population: 550, + flag: 'https://restcountries.eu/data/cck.svg', + currency: 'Australian dollar' + }, + { + name: 'Colombia', + capital: 'Bogotá', + languages: ['Spanish'], + population: 48759958, + flag: 'https://restcountries.eu/data/col.svg', + currency: 'Colombian peso' + }, + { + name: 'Comoros', + capital: 'Moroni', + languages: ['Arabic', 'French'], + population: 806153, + flag: 'https://restcountries.eu/data/com.svg', + currency: 'Comorian franc' + }, + { + name: 'Congo', + capital: 'Brazzaville', + languages: ['French', 'Lingala'], + population: 4741000, + flag: 'https://restcountries.eu/data/cog.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Congo (Democratic Republic of the)', + capital: 'Kinshasa', + languages: ['French', 'Lingala', 'Kongo', 'Swahili', 'Luba-Katanga'], + population: 85026000, + flag: 'https://restcountries.eu/data/cod.svg', + currency: 'Congolese franc' + }, + { + name: 'Cook Islands', + capital: 'Avarua', + languages: ['English'], + population: 18100, + flag: 'https://restcountries.eu/data/cok.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Costa Rica', + capital: 'San José', + languages: ['Spanish'], + population: 4890379, + flag: 'https://restcountries.eu/data/cri.svg', + currency: 'Costa Rican colón' + }, + { + name: 'Croatia', + capital: 'Zagreb', + languages: ['Croatian'], + population: 4190669, + flag: 'https://restcountries.eu/data/hrv.svg', + currency: 'Croatian kuna' + }, + { + name: 'Cuba', + capital: 'Havana', + languages: ['Spanish'], + population: 11239004, + flag: 'https://restcountries.eu/data/cub.svg', + currency: 'Cuban convertible peso' + }, + { + name: 'Curaçao', + capital: 'Willemstad', + languages: ['Dutch', '(Eastern) Punjabi', 'English'], + population: 154843, + flag: 'https://restcountries.eu/data/cuw.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Cyprus', + capital: 'Nicosia', + languages: ['Greek (modern)', 'Turkish', 'Armenian'], + population: 847000, + flag: 'https://restcountries.eu/data/cyp.svg', + currency: 'Euro' + }, + { + name: 'Czech Republic', + capital: 'Prague', + languages: ['Czech', 'Slovak'], + population: 10558524, + flag: 'https://restcountries.eu/data/cze.svg', + currency: 'Czech koruna' + }, + { + name: 'Denmark', + capital: 'Copenhagen', + languages: ['Danish'], + population: 5717014, + flag: 'https://restcountries.eu/data/dnk.svg', + currency: 'Danish krone' + }, + { + name: 'Djibouti', + capital: 'Djibouti', + languages: ['French', 'Arabic'], + population: 900000, + flag: 'https://restcountries.eu/data/dji.svg', + currency: 'Djiboutian franc' + }, + { + name: 'Dominica', + capital: 'Roseau', + languages: ['English'], + population: 71293, + flag: 'https://restcountries.eu/data/dma.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Dominican Republic', + capital: 'Santo Domingo', + languages: ['Spanish'], + population: 10075045, + flag: 'https://restcountries.eu/data/dom.svg', + currency: 'Dominican peso' + }, + { + name: 'Ecuador', + capital: 'Quito', + languages: ['Spanish'], + population: 16545799, + flag: 'https://restcountries.eu/data/ecu.svg', + currency: 'United States dollar' + }, + { + name: 'Egypt', + capital: 'Cairo', + languages: ['Arabic'], + population: 91290000, + flag: 'https://restcountries.eu/data/egy.svg', + currency: 'Egyptian pound' + }, + { + name: 'El Salvador', + capital: 'San Salvador', + languages: ['Spanish'], + population: 6520675, + flag: 'https://restcountries.eu/data/slv.svg', + currency: 'United States dollar' + }, + { + name: 'Equatorial Guinea', + capital: 'Malabo', + languages: ['Spanish', 'French'], + population: 1222442, + flag: 'https://restcountries.eu/data/gnq.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Eritrea', + capital: 'Asmara', + languages: ['Tigrinya', 'Arabic', 'English'], + population: 5352000, + flag: 'https://restcountries.eu/data/eri.svg', + currency: 'Eritrean nakfa' + }, + { + name: 'Estonia', + capital: 'Tallinn', + languages: ['Estonian'], + population: 1315944, + flag: 'https://restcountries.eu/data/est.svg', + currency: 'Euro' + }, + { + name: 'Ethiopia', + capital: 'Addis Ababa', + languages: ['Amharic'], + population: 92206005, + flag: 'https://restcountries.eu/data/eth.svg', + currency: 'Ethiopian birr' + }, + { + name: 'Falkland Islands (Malvinas)', + capital: 'Stanley', + languages: ['English'], + population: 2563, + flag: 'https://restcountries.eu/data/flk.svg', + currency: 'Falkland Islands pound' + }, + { + name: 'Faroe Islands', + capital: 'Tórshavn', + languages: ['Faroese'], + population: 49376, + flag: 'https://restcountries.eu/data/fro.svg', + currency: 'Danish krone' + }, + { + name: 'Fiji', + capital: 'Suva', + languages: ['English', 'Fijian', 'Hindi', 'Urdu'], + population: 867000, + flag: 'https://restcountries.eu/data/fji.svg', + currency: 'Fijian dollar' + }, + { + name: 'Finland', + capital: 'Helsinki', + languages: ['Finnish', 'Swedish'], + population: 5491817, + flag: 'https://restcountries.eu/data/fin.svg', + currency: 'Euro' + }, + { + name: 'France', + capital: 'Paris', + languages: ['French'], + population: 66710000, + flag: 'https://restcountries.eu/data/fra.svg', + currency: 'Euro' + }, + { + name: 'French Guiana', + capital: 'Cayenne', + languages: ['French'], + population: 254541, + flag: 'https://restcountries.eu/data/guf.svg', + currency: 'Euro' + }, + { + name: 'French Polynesia', + capital: 'Papeetē', + languages: ['French'], + population: 271800, + flag: 'https://restcountries.eu/data/pyf.svg', + currency: 'CFP franc' + }, + { + name: 'French Southern Territories', + capital: 'Port-aux-Français', + languages: ['French'], + population: 140, + flag: 'https://restcountries.eu/data/atf.svg', + currency: 'Euro' + }, + { + name: 'Gabon', + capital: 'Libreville', + languages: ['French'], + population: 1802278, + flag: 'https://restcountries.eu/data/gab.svg', + currency: 'Central African CFA franc' + }, + { + name: 'Gambia', + capital: 'Banjul', + languages: ['English'], + population: 1882450, + flag: 'https://restcountries.eu/data/gmb.svg', + currency: 'Gambian dalasi' + }, + { + name: 'Georgia', + capital: 'Tbilisi', + languages: ['Georgian'], + population: 3720400, + flag: 'https://restcountries.eu/data/geo.svg', + currency: 'Georgian Lari' + }, + { + name: 'Germany', + capital: 'Berlin', + languages: ['German'], + population: 81770900, + flag: 'https://restcountries.eu/data/deu.svg', + currency: 'Euro' + }, + { + name: 'Ghana', + capital: 'Accra', + languages: ['English'], + population: 27670174, + flag: 'https://restcountries.eu/data/gha.svg', + currency: 'Ghanaian cedi' + }, + { + name: 'Gibraltar', + capital: 'Gibraltar', + languages: ['English'], + population: 33140, + flag: 'https://restcountries.eu/data/gib.svg', + currency: 'Gibraltar pound' + }, + { + name: 'Greece', + capital: 'Athens', + languages: ['Greek (modern)'], + population: 10858018, + flag: 'https://restcountries.eu/data/grc.svg', + currency: 'Euro' + }, + { + name: 'Greenland', + capital: 'Nuuk', + languages: ['Kalaallisut'], + population: 55847, + flag: 'https://restcountries.eu/data/grl.svg', + currency: 'Danish krone' + }, + { + name: 'Grenada', + capital: "St. George's", + languages: ['English'], + population: 103328, + flag: 'https://restcountries.eu/data/grd.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Guadeloupe', + capital: 'Basse-Terre', + languages: ['French'], + population: 400132, + flag: 'https://restcountries.eu/data/glp.svg', + currency: 'Euro' + }, + { + name: 'Guam', + capital: 'Hagåtña', + languages: ['English', 'Chamorro', 'Spanish'], + population: 184200, + flag: 'https://restcountries.eu/data/gum.svg', + currency: 'United States dollar' + }, + { + name: 'Guatemala', + capital: 'Guatemala City', + languages: ['Spanish'], + population: 16176133, + flag: 'https://restcountries.eu/data/gtm.svg', + currency: 'Guatemalan quetzal' + }, + { + name: 'Guernsey', + capital: 'St. Peter Port', + languages: ['English', 'French'], + population: 62999, + flag: 'https://restcountries.eu/data/ggy.svg', + currency: 'British pound' + }, + { + name: 'Guinea', + capital: 'Conakry', + languages: ['French', 'Fula'], + population: 12947000, + flag: 'https://restcountries.eu/data/gin.svg', + currency: 'Guinean franc' + }, + { + name: 'Guinea-Bissau', + capital: 'Bissau', + languages: ['Portuguese'], + population: 1547777, + flag: 'https://restcountries.eu/data/gnb.svg', + currency: 'West African CFA franc' + }, + { + name: 'Guyana', + capital: 'Georgetown', + languages: ['English'], + population: 746900, + flag: 'https://restcountries.eu/data/guy.svg', + currency: 'Guyanese dollar' + }, + { + name: 'Haiti', + capital: 'Port-au-Prince', + languages: ['French', 'Haitian'], + population: 11078033, + flag: 'https://restcountries.eu/data/hti.svg', + currency: 'Haitian gourde' + }, + { + name: 'Heard Island and McDonald Islands', + capital: '', + languages: ['English'], + population: 0, + flag: 'https://restcountries.eu/data/hmd.svg', + currency: 'Australian dollar' + }, + { + name: 'Holy See', + capital: 'Rome', + languages: ['Latin', 'Italian', 'French', 'German'], + population: 451, + flag: 'https://restcountries.eu/data/vat.svg', + currency: 'Euro' + }, + { + name: 'Honduras', + capital: 'Tegucigalpa', + languages: ['Spanish'], + population: 8576532, + flag: 'https://restcountries.eu/data/hnd.svg', + currency: 'Honduran lempira' + }, + { + name: 'Hong Kong', + capital: 'City of Victoria', + languages: ['English', 'Chinese'], + population: 7324300, + flag: 'https://restcountries.eu/data/hkg.svg', + currency: 'Hong Kong dollar' + }, + { + name: 'Hungary', + capital: 'Budapest', + languages: ['Hungarian'], + population: 9823000, + flag: 'https://restcountries.eu/data/hun.svg', + currency: 'Hungarian forint' + }, + { + name: 'Iceland', + capital: 'Reykjavík', + languages: ['Icelandic'], + population: 334300, + flag: 'https://restcountries.eu/data/isl.svg', + currency: 'Icelandic króna' + }, + { + name: 'India', + capital: 'New Delhi', + languages: ['Hindi', 'English'], + population: 1295210000, + flag: 'https://restcountries.eu/data/ind.svg', + currency: 'Indian rupee' + }, + { + name: 'Indonesia', + capital: 'Jakarta', + languages: ['Indonesian'], + population: 258705000, + flag: 'https://restcountries.eu/data/idn.svg', + currency: 'Indonesian rupiah' + }, + { + name: "Côte d'Ivoire", + capital: 'Yamoussoukro', + languages: ['French'], + population: 22671331, + flag: 'https://restcountries.eu/data/civ.svg', + currency: 'West African CFA franc' + }, + { + name: 'Iran (Islamic Republic of)', + capital: 'Tehran', + languages: ['Persian (Farsi)'], + population: 79369900, + flag: 'https://restcountries.eu/data/irn.svg', + currency: 'Iranian rial' + }, + { + name: 'Iraq', + capital: 'Baghdad', + languages: ['Arabic', 'Kurdish'], + population: 37883543, + flag: 'https://restcountries.eu/data/irq.svg', + currency: 'Iraqi dinar' + }, + { + name: 'Ireland', + capital: 'Dublin', + languages: ['Irish', 'English'], + population: 6378000, + flag: 'https://restcountries.eu/data/irl.svg', + currency: 'Euro' + }, + { + name: 'Isle of Man', + capital: 'Douglas', + languages: ['English', 'Manx'], + population: 84497, + flag: 'https://restcountries.eu/data/imn.svg', + currency: 'British pound' + }, + { + name: 'Israel', + capital: 'Jerusalem', + languages: ['Hebrew (modern)', 'Arabic'], + population: 8527400, + flag: 'https://restcountries.eu/data/isr.svg', + currency: 'Israeli new shekel' + }, + { + name: 'Italy', + capital: 'Rome', + languages: ['Italian'], + population: 60665551, + flag: 'https://restcountries.eu/data/ita.svg', + currency: 'Euro' + }, + { + name: 'Jamaica', + capital: 'Kingston', + languages: ['English'], + population: 2723246, + flag: 'https://restcountries.eu/data/jam.svg', + currency: 'Jamaican dollar' + }, + { + name: 'Japan', + capital: 'Tokyo', + languages: ['Japanese'], + population: 126960000, + flag: 'https://restcountries.eu/data/jpn.svg', + currency: 'Japanese yen' + }, + { + name: 'Jersey', + capital: 'Saint Helier', + languages: ['English', 'French'], + population: 100800, + flag: 'https://restcountries.eu/data/jey.svg', + currency: 'British pound' + }, + { + name: 'Jordan', + capital: 'Amman', + languages: ['Arabic'], + population: 9531712, + flag: 'https://restcountries.eu/data/jor.svg', + currency: 'Jordanian dinar' + }, + { + name: 'Kazakhstan', + capital: 'Astana', + languages: ['Kazakh', 'Russian'], + population: 17753200, + flag: 'https://restcountries.eu/data/kaz.svg', + currency: 'Kazakhstani tenge' + }, + { + name: 'Kenya', + capital: 'Nairobi', + languages: ['English', 'Swahili'], + population: 47251000, + flag: 'https://restcountries.eu/data/ken.svg', + currency: 'Kenyan shilling' + }, + { + name: 'Kiribati', + capital: 'South Tarawa', + languages: ['English'], + population: 113400, + flag: 'https://restcountries.eu/data/kir.svg', + currency: 'Australian dollar' + }, + { + name: 'Kuwait', + capital: 'Kuwait City', + languages: ['Arabic'], + population: 4183658, + flag: 'https://restcountries.eu/data/kwt.svg', + currency: 'Kuwaiti dinar' + }, + { + name: 'Kyrgyzstan', + capital: 'Bishkek', + languages: ['Kyrgyz', 'Russian'], + population: 6047800, + flag: 'https://restcountries.eu/data/kgz.svg', + currency: 'Kyrgyzstani som' + }, + { + name: "Lao People's Democratic Republic", + capital: 'Vientiane', + languages: ['Lao'], + population: 6492400, + flag: 'https://restcountries.eu/data/lao.svg', + currency: 'Lao kip' + }, + { + name: 'Latvia', + capital: 'Riga', + languages: ['Latvian'], + population: 1961600, + flag: 'https://restcountries.eu/data/lva.svg', + currency: 'Euro' + }, + { + name: 'Lebanon', + capital: 'Beirut', + languages: ['Arabic', 'French'], + population: 5988000, + flag: 'https://restcountries.eu/data/lbn.svg', + currency: 'Lebanese pound' + }, + { + name: 'Lesotho', + capital: 'Maseru', + languages: ['English', 'Southern Sotho'], + population: 1894194, + flag: 'https://restcountries.eu/data/lso.svg', + currency: 'Lesotho loti' + }, + { + name: 'Liberia', + capital: 'Monrovia', + languages: ['English'], + population: 4615000, + flag: 'https://restcountries.eu/data/lbr.svg', + currency: 'Liberian dollar' + }, + { + name: 'Libya', + capital: 'Tripoli', + languages: ['Arabic'], + population: 6385000, + flag: 'https://restcountries.eu/data/lby.svg', + currency: 'Libyan dinar' + }, + { + name: 'Liechtenstein', + capital: 'Vaduz', + languages: ['German'], + population: 37623, + flag: 'https://restcountries.eu/data/lie.svg', + currency: 'Swiss franc' + }, + { + name: 'Lithuania', + capital: 'Vilnius', + languages: ['Lithuanian'], + population: 2872294, + flag: 'https://restcountries.eu/data/ltu.svg', + currency: 'Euro' + }, + { + name: 'Luxembourg', + capital: 'Luxembourg', + languages: ['French', 'German', 'Luxembourgish'], + population: 576200, + flag: 'https://restcountries.eu/data/lux.svg', + currency: 'Euro' + }, + { + name: 'Macao', + capital: '', + languages: ['Chinese', 'Portuguese'], + population: 649100, + flag: 'https://restcountries.eu/data/mac.svg', + currency: 'Macanese pataca' + }, + { + name: 'Macedonia (the former Yugoslav Republic of)', + capital: 'Skopje', + languages: ['Macedonian'], + population: 2058539, + flag: 'https://restcountries.eu/data/mkd.svg', + currency: 'Macedonian denar' + }, + { + name: 'Madagascar', + capital: 'Antananarivo', + languages: ['French', 'Malagasy'], + population: 22434363, + flag: 'https://restcountries.eu/data/mdg.svg', + currency: 'Malagasy ariary' + }, + { + name: 'Malawi', + capital: 'Lilongwe', + languages: ['English', 'Chichewa'], + population: 16832910, + flag: 'https://restcountries.eu/data/mwi.svg', + currency: 'Malawian kwacha' + }, + { + name: 'Malaysia', + capital: 'Kuala Lumpur', + languages: ['Malaysian'], + population: 31405416, + flag: 'https://restcountries.eu/data/mys.svg', + currency: 'Malaysian ringgit' + }, + { + name: 'Maldives', + capital: 'Malé', + languages: ['Divehi'], + population: 344023, + flag: 'https://restcountries.eu/data/mdv.svg', + currency: 'Maldivian rufiyaa' + }, + { + name: 'Mali', + capital: 'Bamako', + languages: ['French'], + population: 18135000, + flag: 'https://restcountries.eu/data/mli.svg', + currency: 'West African CFA franc' + }, + { + name: 'Malta', + capital: 'Valletta', + languages: ['Maltese', 'English'], + population: 425384, + flag: 'https://restcountries.eu/data/mlt.svg', + currency: 'Euro' + }, + { + name: 'Marshall Islands', + capital: 'Majuro', + languages: ['English', 'Marshallese'], + population: 54880, + flag: 'https://restcountries.eu/data/mhl.svg', + currency: 'United States dollar' + }, + { + name: 'Martinique', + capital: 'Fort-de-France', + languages: ['French'], + population: 378243, + flag: 'https://restcountries.eu/data/mtq.svg', + currency: 'Euro' + }, + { + name: 'Mauritania', + capital: 'Nouakchott', + languages: ['Arabic'], + population: 3718678, + flag: 'https://restcountries.eu/data/mrt.svg', + currency: 'Mauritanian ouguiya' + }, + { + name: 'Mauritius', + capital: 'Port Louis', + languages: ['English'], + population: 1262879, + flag: 'https://restcountries.eu/data/mus.svg', + currency: 'Mauritian rupee' + }, + { + name: 'Mayotte', + capital: 'Mamoudzou', + languages: ['French'], + population: 226915, + flag: 'https://restcountries.eu/data/myt.svg', + currency: 'Euro' + }, + { + name: 'Mexico', + capital: 'Mexico City', + languages: ['Spanish'], + population: 122273473, + flag: 'https://restcountries.eu/data/mex.svg', + currency: 'Mexican peso' + }, + { + name: 'Micronesia (Federated States of)', + capital: 'Palikir', + languages: ['English'], + population: 102800, + flag: 'https://restcountries.eu/data/fsm.svg', + currency: '[D]' + }, + { + name: 'Moldova (Republic of)', + capital: 'Chișinău', + languages: ['Romanian'], + population: 3553100, + flag: 'https://restcountries.eu/data/mda.svg', + currency: 'Moldovan leu' + }, + { + name: 'Monaco', + capital: 'Monaco', + languages: ['French'], + population: 38400, + flag: 'https://restcountries.eu/data/mco.svg', + currency: 'Euro' + }, + { + name: 'Mongolia', + capital: 'Ulan Bator', + languages: ['Mongolian'], + population: 3093100, + flag: 'https://restcountries.eu/data/mng.svg', + currency: 'Mongolian tögrög' + }, + { + name: 'Montenegro', + capital: 'Podgorica', + languages: ['Serbian', 'Bosnian', 'Albanian', 'Croatian'], + population: 621810, + flag: 'https://restcountries.eu/data/mne.svg', + currency: 'Euro' + }, + { + name: 'Montserrat', + capital: 'Plymouth', + languages: ['English'], + population: 4922, + flag: 'https://restcountries.eu/data/msr.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Morocco', + capital: 'Rabat', + languages: ['Arabic'], + population: 33337529, + flag: 'https://restcountries.eu/data/mar.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Mozambique', + capital: 'Maputo', + languages: ['Portuguese'], + population: 26423700, + flag: 'https://restcountries.eu/data/moz.svg', + currency: 'Mozambican metical' + }, + { + name: 'Myanmar', + capital: 'Naypyidaw', + languages: ['Burmese'], + population: 51419420, + flag: 'https://restcountries.eu/data/mmr.svg', + currency: 'Burmese kyat' + }, + { + name: 'Namibia', + capital: 'Windhoek', + languages: ['English', 'Afrikaans'], + population: 2324388, + flag: 'https://restcountries.eu/data/nam.svg', + currency: 'Namibian dollar' + }, + { + name: 'Nauru', + capital: 'Yaren', + languages: ['English', 'Nauruan'], + population: 10084, + flag: 'https://restcountries.eu/data/nru.svg', + currency: 'Australian dollar' + }, + { + name: 'Nepal', + capital: 'Kathmandu', + languages: ['Nepali'], + population: 28431500, + flag: 'https://restcountries.eu/data/npl.svg', + currency: 'Nepalese rupee' + }, + { + name: 'Netherlands', + capital: 'Amsterdam', + languages: ['Dutch'], + population: 17019800, + flag: 'https://restcountries.eu/data/nld.svg', + currency: 'Euro' + }, + { + name: 'New Caledonia', + capital: 'Nouméa', + languages: ['French'], + population: 268767, + flag: 'https://restcountries.eu/data/ncl.svg', + currency: 'CFP franc' + }, + { + name: 'New Zealand', + capital: 'Wellington', + languages: ['English', 'Māori'], + population: 4697854, + flag: 'https://restcountries.eu/data/nzl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Nicaragua', + capital: 'Managua', + languages: ['Spanish'], + population: 6262703, + flag: 'https://restcountries.eu/data/nic.svg', + currency: 'Nicaraguan córdoba' + }, + { + name: 'Niger', + capital: 'Niamey', + languages: ['French'], + population: 20715000, + flag: 'https://restcountries.eu/data/ner.svg', + currency: 'West African CFA franc' + }, + { + name: 'Nigeria', + capital: 'Abuja', + languages: ['English'], + population: 186988000, + flag: 'https://restcountries.eu/data/nga.svg', + currency: 'Nigerian naira' + }, + { + name: 'Niue', + capital: 'Alofi', + languages: ['English'], + population: 1470, + flag: 'https://restcountries.eu/data/niu.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Norfolk Island', + capital: 'Kingston', + languages: ['English'], + population: 2302, + flag: 'https://restcountries.eu/data/nfk.svg', + currency: 'Australian dollar' + }, + { + name: "Korea (Democratic People's Republic of)", + capital: 'Pyongyang', + languages: ['Korean'], + population: 25281000, + flag: 'https://restcountries.eu/data/prk.svg', + currency: 'North Korean won' + }, + { + name: 'Northern Mariana Islands', + capital: 'Saipan', + languages: ['English', 'Chamorro'], + population: 56940, + flag: 'https://restcountries.eu/data/mnp.svg', + currency: 'United States dollar' + }, + { + name: 'Norway', + capital: 'Oslo', + languages: ['Norwegian', 'Norwegian Bokmål', 'Norwegian Nynorsk'], + population: 5223256, + flag: 'https://restcountries.eu/data/nor.svg', + currency: 'Norwegian krone' + }, + { + name: 'Oman', + capital: 'Muscat', + languages: ['Arabic'], + population: 4420133, + flag: 'https://restcountries.eu/data/omn.svg', + currency: 'Omani rial' + }, + { + name: 'Pakistan', + capital: 'Islamabad', + languages: ['English', 'Urdu'], + population: 194125062, + flag: 'https://restcountries.eu/data/pak.svg', + currency: 'Pakistani rupee' + }, + { + name: 'Palau', + capital: 'Ngerulmud', + languages: ['English'], + population: 17950, + flag: 'https://restcountries.eu/data/plw.svg', + currency: '[E]' + }, + { + name: 'Palestine, State of', + capital: 'Ramallah', + languages: ['Arabic'], + population: 4682467, + flag: 'https://restcountries.eu/data/pse.svg', + currency: 'Israeli new sheqel' + }, + { + name: 'Panama', + capital: 'Panama City', + languages: ['Spanish'], + population: 3814672, + flag: 'https://restcountries.eu/data/pan.svg', + currency: 'Panamanian balboa' + }, + { + name: 'Papua New Guinea', + capital: 'Port Moresby', + languages: ['English'], + population: 8083700, + flag: 'https://restcountries.eu/data/png.svg', + currency: 'Papua New Guinean kina' + }, + { + name: 'Paraguay', + capital: 'Asunción', + languages: ['Spanish', 'Guaraní'], + population: 6854536, + flag: 'https://restcountries.eu/data/pry.svg', + currency: 'Paraguayan guaraní' + }, + { + name: 'Peru', + capital: 'Lima', + languages: ['Spanish'], + population: 31488700, + flag: 'https://restcountries.eu/data/per.svg', + currency: 'Peruvian sol' + }, + { + name: 'Philippines', + capital: 'Manila', + languages: ['English'], + population: 103279800, + flag: 'https://restcountries.eu/data/phl.svg', + currency: 'Philippine peso' + }, + { + name: 'Pitcairn', + capital: 'Adamstown', + languages: ['English'], + population: 56, + flag: 'https://restcountries.eu/data/pcn.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Poland', + capital: 'Warsaw', + languages: ['Polish'], + population: 38437239, + flag: 'https://restcountries.eu/data/pol.svg', + currency: 'Polish złoty' + }, + { + name: 'Portugal', + capital: 'Lisbon', + languages: ['Portuguese'], + population: 10374822, + flag: 'https://restcountries.eu/data/prt.svg', + currency: 'Euro' + }, + { + name: 'Puerto Rico', + capital: 'San Juan', + languages: ['Spanish', 'English'], + population: 3474182, + flag: 'https://restcountries.eu/data/pri.svg', + currency: 'United States dollar' + }, + { + name: 'Qatar', + capital: 'Doha', + languages: ['Arabic'], + population: 2587564, + flag: 'https://restcountries.eu/data/qat.svg', + currency: 'Qatari riyal' + }, + { + name: 'Republic of Kosovo', + capital: 'Pristina', + languages: ['Albanian', 'Serbian'], + population: 1733842, + flag: 'https://restcountries.eu/data/kos.svg', + currency: 'Euro' + }, + { + name: 'Réunion', + capital: 'Saint-Denis', + languages: ['French'], + population: 840974, + flag: 'https://restcountries.eu/data/reu.svg', + currency: 'Euro' + }, + { + name: 'Romania', + capital: 'Bucharest', + languages: ['Romanian'], + population: 19861408, + flag: 'https://restcountries.eu/data/rou.svg', + currency: 'Romanian leu' + }, + { + name: 'Russian Federation', + capital: 'Moscow', + languages: ['Russian'], + population: 146599183, + flag: 'https://restcountries.eu/data/rus.svg', + currency: 'Russian ruble' + }, + { + name: 'Rwanda', + capital: 'Kigali', + languages: ['Kinyarwanda', 'English', 'French'], + population: 11553188, + flag: 'https://restcountries.eu/data/rwa.svg', + currency: 'Rwandan franc' + }, + { + name: 'Saint Barthélemy', + capital: 'Gustavia', + languages: ['French'], + population: 9417, + flag: 'https://restcountries.eu/data/blm.svg', + currency: 'Euro' + }, + { + name: 'Saint Helena, Ascension and Tristan da Cunha', + capital: 'Jamestown', + languages: ['English'], + population: 4255, + flag: 'https://restcountries.eu/data/shn.svg', + currency: 'Saint Helena pound' + }, + { + name: 'Saint Kitts and Nevis', + capital: 'Basseterre', + languages: ['English'], + population: 46204, + flag: 'https://restcountries.eu/data/kna.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Lucia', + capital: 'Castries', + languages: ['English'], + population: 186000, + flag: 'https://restcountries.eu/data/lca.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Saint Martin (French part)', + capital: 'Marigot', + languages: ['English', 'French', 'Dutch'], + population: 36979, + flag: 'https://restcountries.eu/data/maf.svg', + currency: 'Euro' + }, + { + name: 'Saint Pierre and Miquelon', + capital: 'Saint-Pierre', + languages: ['French'], + population: 6069, + flag: 'https://restcountries.eu/data/spm.svg', + currency: 'Euro' + }, + { + name: 'Saint Vincent and the Grenadines', + capital: 'Kingstown', + languages: ['English'], + population: 109991, + flag: 'https://restcountries.eu/data/vct.svg', + currency: 'East Caribbean dollar' + }, + { + name: 'Samoa', + capital: 'Apia', + languages: ['Samoan', 'English'], + population: 194899, + flag: 'https://restcountries.eu/data/wsm.svg', + currency: 'Samoan tālā' + }, + { + name: 'San Marino', + capital: 'City of San Marino', + languages: ['Italian'], + population: 33005, + flag: 'https://restcountries.eu/data/smr.svg', + currency: 'Euro' + }, + { + name: 'Sao Tome and Principe', + capital: 'São Tomé', + languages: ['Portuguese'], + population: 187356, + flag: 'https://restcountries.eu/data/stp.svg', + currency: 'São Tomé and Príncipe dobra' + }, + { + name: 'Saudi Arabia', + capital: 'Riyadh', + languages: ['Arabic'], + population: 32248200, + flag: 'https://restcountries.eu/data/sau.svg', + currency: 'Saudi riyal' + }, + { + name: 'Senegal', + capital: 'Dakar', + languages: ['French'], + population: 14799859, + flag: 'https://restcountries.eu/data/sen.svg', + currency: 'West African CFA franc' + }, + { + name: 'Serbia', + capital: 'Belgrade', + languages: ['Serbian'], + population: 7076372, + flag: 'https://restcountries.eu/data/srb.svg', + currency: 'Serbian dinar' + }, + { + name: 'Seychelles', + capital: 'Victoria', + languages: ['French', 'English'], + population: 91400, + flag: 'https://restcountries.eu/data/syc.svg', + currency: 'Seychellois rupee' + }, + { + name: 'Sierra Leone', + capital: 'Freetown', + languages: ['English'], + population: 7075641, + flag: 'https://restcountries.eu/data/sle.svg', + currency: 'Sierra Leonean leone' + }, + { + name: 'Singapore', + capital: 'Singapore', + languages: ['English', 'Malay', 'Tamil', 'Chinese'], + population: 5535000, + flag: 'https://restcountries.eu/data/sgp.svg', + currency: 'Brunei dollar' + }, + { + name: 'Sint Maarten (Dutch part)', + capital: 'Philipsburg', + languages: ['Dutch', 'English'], + population: 38247, + flag: 'https://restcountries.eu/data/sxm.svg', + currency: 'Netherlands Antillean guilder' + }, + { + name: 'Slovakia', + capital: 'Bratislava', + languages: ['Slovak'], + population: 5426252, + flag: 'https://restcountries.eu/data/svk.svg', + currency: 'Euro' + }, + { + name: 'Slovenia', + capital: 'Ljubljana', + languages: ['Slovene'], + population: 2064188, + flag: 'https://restcountries.eu/data/svn.svg', + currency: 'Euro' + }, + { + name: 'Solomon Islands', + capital: 'Honiara', + languages: ['English'], + population: 642000, + flag: 'https://restcountries.eu/data/slb.svg', + currency: 'Solomon Islands dollar' + }, + { + name: 'Somalia', + capital: 'Mogadishu', + languages: ['Somali', 'Arabic'], + population: 11079000, + flag: 'https://restcountries.eu/data/som.svg', + currency: 'Somali shilling' + }, + { + name: 'South Africa', + capital: 'Pretoria', + languages: [ + 'Afrikaans', + 'English', + 'Southern Ndebele', + 'Southern Sotho', + 'Swati', + 'Tswana', + 'Tsonga', + 'Venda', + 'Xhosa', + 'Zulu' + ], + population: 55653654, + flag: 'https://restcountries.eu/data/zaf.svg', + currency: 'South African rand' + }, + { + name: 'South Georgia and the South Sandwich Islands', + capital: 'King Edward Point', + languages: ['English'], + population: 30, + flag: 'https://restcountries.eu/data/sgs.svg', + currency: 'British pound' + }, + { + name: 'Korea (Republic of)', + capital: 'Seoul', + languages: ['Korean'], + population: 50801405, + flag: 'https://restcountries.eu/data/kor.svg', + currency: 'South Korean won' + }, + { + name: 'South Sudan', + capital: 'Juba', + languages: ['English'], + population: 12131000, + flag: 'https://restcountries.eu/data/ssd.svg', + currency: 'South Sudanese pound' + }, + { + name: 'Spain', + capital: 'Madrid', + languages: ['Spanish'], + population: 46438422, + flag: 'https://restcountries.eu/data/esp.svg', + currency: 'Euro' + }, + { + name: 'Sri Lanka', + capital: 'Colombo', + languages: ['Sinhalese', 'Tamil'], + population: 20966000, + flag: 'https://restcountries.eu/data/lka.svg', + currency: 'Sri Lankan rupee' + }, + { + name: 'Sudan', + capital: 'Khartoum', + languages: ['Arabic', 'English'], + population: 39598700, + flag: 'https://restcountries.eu/data/sdn.svg', + currency: 'Sudanese pound' + }, + { + name: 'Suriname', + capital: 'Paramaribo', + languages: ['Dutch'], + population: 541638, + flag: 'https://restcountries.eu/data/sur.svg', + currency: 'Surinamese dollar' + }, + { + name: 'Svalbard and Jan Mayen', + capital: 'Longyearbyen', + languages: ['Norwegian'], + population: 2562, + flag: 'https://restcountries.eu/data/sjm.svg', + currency: 'Norwegian krone' + }, + { + name: 'Swaziland', + capital: 'Lobamba', + languages: ['English', 'Swati'], + population: 1132657, + flag: 'https://restcountries.eu/data/swz.svg', + currency: 'Swazi lilangeni' + }, + { + name: 'Sweden', + capital: 'Stockholm', + languages: ['Swedish'], + population: 9894888, + flag: 'https://restcountries.eu/data/swe.svg', + currency: 'Swedish krona' + }, + { + name: 'Switzerland', + capital: 'Bern', + languages: ['German', 'French', 'Italian'], + population: 8341600, + flag: 'https://restcountries.eu/data/che.svg', + currency: 'Swiss franc' + }, + { + name: 'Syrian Arab Republic', + capital: 'Damascus', + languages: ['Arabic'], + population: 18564000, + flag: 'https://restcountries.eu/data/syr.svg', + currency: 'Syrian pound' + }, + { + name: 'Taiwan', + capital: 'Taipei', + languages: ['Chinese'], + population: 23503349, + flag: 'https://restcountries.eu/data/twn.svg', + currency: 'New Taiwan dollar' + }, + { + name: 'Tajikistan', + capital: 'Dushanbe', + languages: ['Tajik', 'Russian'], + population: 8593600, + flag: 'https://restcountries.eu/data/tjk.svg', + currency: 'Tajikistani somoni' + }, + { + name: 'Tanzania, United Republic of', + capital: 'Dodoma', + languages: ['Swahili', 'English'], + population: 55155000, + flag: 'https://restcountries.eu/data/tza.svg', + currency: 'Tanzanian shilling' + }, + { + name: 'Thailand', + capital: 'Bangkok', + languages: ['Thai'], + population: 65327652, + flag: 'https://restcountries.eu/data/tha.svg', + currency: 'Thai baht' + }, + { + name: 'Timor-Leste', + capital: 'Dili', + languages: ['Portuguese'], + population: 1167242, + flag: 'https://restcountries.eu/data/tls.svg', + currency: 'United States dollar' + }, + { + name: 'Togo', + capital: 'Lomé', + languages: ['French'], + population: 7143000, + flag: 'https://restcountries.eu/data/tgo.svg', + currency: 'West African CFA franc' + }, + { + name: 'Tokelau', + capital: 'Fakaofo', + languages: ['English'], + population: 1411, + flag: 'https://restcountries.eu/data/tkl.svg', + currency: 'New Zealand dollar' + }, + { + name: 'Tonga', + capital: "Nuku'alofa", + languages: ['English', 'Tonga (Tonga Islands)'], + population: 103252, + flag: 'https://restcountries.eu/data/ton.svg', + currency: 'Tongan paʻanga' + }, + { + name: 'Trinidad and Tobago', + capital: 'Port of Spain', + languages: ['English'], + population: 1349667, + flag: 'https://restcountries.eu/data/tto.svg', + currency: 'Trinidad and Tobago dollar' + }, + { + name: 'Tunisia', + capital: 'Tunis', + languages: ['Arabic'], + population: 11154400, + flag: 'https://restcountries.eu/data/tun.svg', + currency: 'Tunisian dinar' + }, + { + name: 'Turkey', + capital: 'Ankara', + languages: ['Turkish'], + population: 78741053, + flag: 'https://restcountries.eu/data/tur.svg', + currency: 'Turkish lira' + }, + { + name: 'Turkmenistan', + capital: 'Ashgabat', + languages: ['Turkmen', 'Russian'], + population: 4751120, + flag: 'https://restcountries.eu/data/tkm.svg', + currency: 'Turkmenistan manat' + }, + { + name: 'Turks and Caicos Islands', + capital: 'Cockburn Town', + languages: ['English'], + population: 31458, + flag: 'https://restcountries.eu/data/tca.svg', + currency: 'United States dollar' + }, + { + name: 'Tuvalu', + capital: 'Funafuti', + languages: ['English'], + population: 10640, + flag: 'https://restcountries.eu/data/tuv.svg', + currency: 'Australian dollar' + }, + { + name: 'Uganda', + capital: 'Kampala', + languages: ['English', 'Swahili'], + population: 33860700, + flag: 'https://restcountries.eu/data/uga.svg', + currency: 'Ugandan shilling' + }, + { + name: 'Ukraine', + capital: 'Kiev', + languages: ['Ukrainian'], + population: 42692393, + flag: 'https://restcountries.eu/data/ukr.svg', + currency: 'Ukrainian hryvnia' + }, + { + name: 'United Arab Emirates', + capital: 'Abu Dhabi', + languages: ['Arabic'], + population: 9856000, + flag: 'https://restcountries.eu/data/are.svg', + currency: 'United Arab Emirates dirham' + }, + { + name: 'United Kingdom of Great Britain and Northern Ireland', + capital: 'London', + languages: ['English'], + population: 65110000, + flag: 'https://restcountries.eu/data/gbr.svg', + currency: 'British pound' + }, + { + name: 'United States of America', + capital: 'Washington, D.C.', + languages: ['English'], + population: 323947000, + flag: 'https://restcountries.eu/data/usa.svg', + currency: 'United States dollar' + }, + { + name: 'Uruguay', + capital: 'Montevideo', + languages: ['Spanish'], + population: 3480222, + flag: 'https://restcountries.eu/data/ury.svg', + currency: 'Uruguayan peso' + }, + { + name: 'Uzbekistan', + capital: 'Tashkent', + languages: ['Uzbek', 'Russian'], + population: 31576400, + flag: 'https://restcountries.eu/data/uzb.svg', + currency: "Uzbekistani so'm" + }, + { + name: 'Vanuatu', + capital: 'Port Vila', + languages: ['Bislama', 'English', 'French'], + population: 277500, + flag: 'https://restcountries.eu/data/vut.svg', + currency: 'Vanuatu vatu' + }, + { + name: 'Venezuela (Bolivarian Republic of)', + capital: 'Caracas', + languages: ['Spanish'], + population: 31028700, + flag: 'https://restcountries.eu/data/ven.svg', + currency: 'Venezuelan bolívar' + }, + { + name: 'Viet Nam', + capital: 'Hanoi', + languages: ['Vietnamese'], + population: 92700000, + flag: 'https://restcountries.eu/data/vnm.svg', + currency: 'Vietnamese đồng' + }, + { + name: 'Wallis and Futuna', + capital: 'Mata-Utu', + languages: ['French'], + population: 11750, + flag: 'https://restcountries.eu/data/wlf.svg', + currency: 'CFP franc' + }, + { + name: 'Western Sahara', + capital: 'El Aaiún', + languages: ['Spanish'], + population: 510713, + flag: 'https://restcountries.eu/data/esh.svg', + currency: 'Moroccan dirham' + }, + { + name: 'Yemen', + capital: "Sana'a", + languages: ['Arabic'], + population: 27478000, + flag: 'https://restcountries.eu/data/yem.svg', + currency: 'Yemeni rial' + }, + { + name: 'Zambia', + capital: 'Lusaka', + languages: ['English'], + population: 15933883, + flag: 'https://restcountries.eu/data/zmb.svg', + currency: 'Zambian kwacha' + }, + { + name: 'Zimbabwe', + capital: 'Harare', + languages: ['English', 'Shona', 'Northern Ndebele'], + population: 14240168, + flag: 'https://restcountries.eu/data/zwe.svg', + currency: 'Botswana pula' + } +] diff --git a/17_Day/17_day_starter/index.html b/17_Day/17_day_starter/index.html new file mode 100644 index 0000000..61784f3 --- /dev/null +++ b/17_Day/17_day_starter/index.html @@ -0,0 +1,17 @@ + + + + + 30DaysOfJavaScript:17 Day + + + +

30DaysOfJavaScript:17 Day

+

DOM

+ + + + + + + \ No newline at end of file diff --git a/17_Day/17_day_starter/scripts/main.js b/17_Day/17_day_starter/scripts/main.js new file mode 100644 index 0000000..c6045c8 --- /dev/null +++ b/17_Day/17_day_starter/scripts/main.js @@ -0,0 +1,2 @@ +console.log(countries) +alert('Open the console and check if the countries has been loaded') \ No newline at end of file diff --git a/17_Day/17_day_web_storage.md b/17_Day/17_day_web_storage.md new file mode 100644 index 0000000..5aa39ae --- /dev/null +++ b/17_Day/17_day_web_storage.md @@ -0,0 +1,233 @@ +
+

30 Days Of JavaScript

+ + + + + Twitter Follow + + +Author: +Asabeneh Yetayeh
+ January, 2020 +
+ +
+ +[<< Day 16](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/16_Day/16_day_json.md) | [Day 18 >>]() + +![Thirty Days Of JavaScript](../images/banners/day_1_17.png) + +- [Day 17](#day-17) + - [HTML5 Web Storage](#html5-web-storage) + - [sessionStorage](#sessionstorage) + - [localStorage](#localstorage) + - [Use case of Web Storages](#use-case-of-web-storages) + - [HTML5 Web Storage Objects](#html5-web-storage-objects) + - [Setting item to the localStorage](#setting-item-to-the-localstorage) + - [Getting item from localStorage](#getting-item-from-localstorage) + - [Clearing the localStorage](#clearing-the-localstorage) + - [Exercises](#exercises) + - [Exercises: Level 1](#exercises-level-1) + - [Exercises: Level 2](#exercises-level-2) + - [Exercises: Level 3](#exercises-level-3) + +# Day 17 + +## HTML5 Web Storage + +Web Storage(sessionStorage and localStorage) is a new HTML5 API offering important benefits over traditional cookies. Before HTML5, application data had to be stored in cookies, included in every server request. Web storage is more secure, and large amounts of data can be stored locally, without affecting website performance. The data storage limit of cookies in many web browsers is about 4 KB per cookie. We Storages can store far larger data (at least 5MB) and never transferred to the server. All sites from the same or one origin can store and access the same data. + +The data being stored can be accessed using JavaScript, which gives you the ability to leverage client-side scripting to do many things that have traditionally involved server-side programming and relational databases. The are are two Web Storage objects: + +- sessionStorage +- localStorage + +localStorage is similar to sessionStorage, except that while data stored in localStorage has no expiration time, data stored in sessionStorage gets cleared when the page session ends — that is, when the page is closed. + +It should be noted that data stored in either localStorage or sessionStorage is specific to the protocol of the page. + +The keys and the values are always strings (note that, as with objects, integer keys will be automatically converted to strings). + +![web_storage](../images/web_storage.png) + +### sessionStorage + +sessionStorage is only available within the browser tab or window session. It’s designed to store data in a single web page session. That means if the window is closed the session data will be removed. Since sessionStorage and localStorage has similar methods, we will focus only on localStorage. + +### localStorage + +The HTML5 localStorage is the para of the web storage API which is used to store data on the browser with no expiration data. The data will be available on the browser even after the browser is closed. localStorage is kept even between browser sessions. This means data is still available when the browser is closed and reopened, and also instantly between tabs and windows. + +Web Storage data is, in both cases, not available between different browsers. For example, storage objects created in Firefox cannot be accessed in Internet Explorer, exactly like cookies. There are five methods to work on local storage: +_setItem(), getItem(), removeItem(), clear(), key()_ + +### Use case of Web Storages + +Some use case of Web Storages are + +- store data temporarily +- saving products that the user places in his shopping cart +- data can be made available between page requests, multiple browser tabs, and also between browser sessions using localStorage +- can be used offline completely using localStorage +- Web Storage can be a great performance win when some static data is stored on the client to minimize the number of subsequent requests. Even images can be stored in strings using Base64 encoding. +- can be used for user authentication method + +For the examples mentioned above, it makes sense to use localStorage. You may be wondering, then, when we should use sessionStorage. + +In cases, we want to to get rid of the data as soon as the window is closed. Or, perhaps, if we do not want the application to interfere with the same application that’s open in another window. These scenarios are served best with sessionStorage. + +Now, let use how use make use of these Web Storage APIs. + +## HTML5 Web Storage Objects + +HTML web storage provides two objects for storing data on the client: + +- window.localStorage - stores data with no expiration date +- window.sessionStorage - stores data for one session (data is lost when the browser tab is closed)Most modern browsers support Web Storage, however it is good to check browser support for localStorage and sessionStorage. Let us see the available methods for the Web Storage objects. + +Web Storage objects: + +- _localStorage_ - to display the localStorage object +- _localStorage.clear()_ - to remove everything in the local storage +- _localStorage.setItem()_ - to storage data in the localStorage. It takes a key and a value parameters. +- _localStorage.getItem()_ - to display data stored in the localStorage. It takes a key as a parameter. +- _localStorage.removeItem()_ - to remove stored item form a localStorage. It takes key as a parameter. +- _localStorage.key()_ - to display a data stored in a localStorage. It takes index as a parameter. + +![local_storage](../images/local_storage.png) + +### Setting item to the localStorage + +When we set data to be stored in a localStorage, it will be stored as a string. If we are storing an array or an object, we should stringify it first to keep the format unless otherwise we lose the array structure or the object structure of the original data. + +We store data in the localStorage using the _localStorage.setItem_ method. + +```js +//syntax +localStorage.setItem('key', 'value') +``` + +- Storing string in a localStorage + +```js +localStorage.setItem('firstName', 'Asabeneh') // since the value is string we do not stringify it +console.log(localStorage) +``` + +```sh +Storage {firstName: 'Asabeneh', length: 1} +``` + +- Storing number in a local storage + +```js +localStorage.setItem('age', 200) +console.log(localStorage) +``` + +```sh + Storage {age: '200', firstName: 'Asabeneh', length: 2} +``` + +- Storing an array in a localStorage. If we are storing an array, an object or object array, we should stringify the object first. See the example below. + +```js +const skills = ['HTML', 'CSS', 'JS', 'React'] +//Skills array has to be stringified first to keep the format. +const skillsJSON = JSON.stringify(skills, undefined, 4) +localStorage.setItem('skills', skillsJSON) +console.log(localStorage) +``` + +```sh +Storage {age: '200', firstName: 'Asabeneh', skills: 'HTML,CSS,JS,React', length: 3} +``` + +```js +let skills = [ + { tech: 'HTML', level: 10 }, + { tech: 'CSS', level: 9 }, + { tech: 'JS', level: 8 }, + { tech: 'React', level: 9 }, + { tech: 'Redux', level: 10 }, + { tech: 'Node', level: 8 }, + { tech: 'MongoDB', level: 8 } +] + +let skillJSON = JSON.stringify(skills) +localStorage.setItem('skills', skillJSON) +``` + +- Storing an object in a localStorage. Before we storage objects to a localStorage, the object has to be stringified. + +```js +const user = { + firstName: 'Asabeneh', + age: 250, + skills: ['HTML', 'CSS', 'JS', 'React'] +} + +const userText = JSON.stringify(user, undefined, 4) +localStorage.setItem('user', userText) +``` + +### Getting item from localStorage + +We get data from the local storage using _localStorage.getItem()_ method. + +```js +//syntax +localStorage.getItem('key') +``` + +```js +let firstName = localStorage.getItem('firstName') +let age = localStorage.getItem('age') +let skills = localStorage.getItem('skills') +console.log(firstName, age, skills) +``` + +```sh + 'Asabeneh', '200', '['HTML','CSS','JS','React']' +``` + +As you can see the skill is in a string format. Let us use JSON.parse() to parse it to normal array. + +```js +let skills = localStorage.getItem('skills') +let skillsObj = JSON.parse(skills, undefined, 4) +console.log(skillsObj) +``` + +```sh +['HTML','CSS','JS','React'] +``` + +### Clearing the localStorage + +The clear method, will clear everything stored in the local storage + +```js +localStorage.clear() +``` + +🌕 You are determined .Now, you knew a Web Storages and you knew how to store small data on client browsers. You are 17 steps a head to your way to greatness. Now do some exercises for your brain and for your muscle. + +## Exercises + +### Exercises: Level 1 + +1. Store you first name, last name, age, country, city in your browser localStorage. + +### Exercises: Level 2 + +1. Create a student object. The student object will have first name, last name, age, skills, country, enrolled keys and values for the keys. Store the student object in your browser localStorage. + +### Exercises: Level 3 + +1. Create an object called personAccount. It has firstname, lastname, incomes, expenses properties and it has totalIncome, totalExpense, accountInfo,addIncome, addExpense and accountBalance methods. Incomes is a set of incomes and its description and expenses is also a set of expenses and its description. + +🎉 CONGRATULATIONS ! 🎉 + +[<< Day 16](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/16_Day/16_day_json.md) | [Day 18 >>]() diff --git a/images/local_storage.png b/images/local_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..0876852997afb0fcb0df3e5d0d895d047ef770e4 GIT binary patch literal 239434 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 u6fzq9 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 F|6idqopJyG literal 0 HcmV?d00001 diff --git a/images/web_storage.png b/images/web_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..46f9311d9504a4a3f126e4eda85755320bd4d80c GIT binary patch literal 187049 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

(Kt=4Rxmvm>|?A3Wq+|6^OkqU2Z14#%0c8 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 Date: Sat, 18 Jan 2020 01:09:01 +0200 Subject: [PATCH 18/21] day 17 --- 17_Day/17_day_starter/index.html | 3 +-- 17_Day/17_day_starter/scripts/main.js | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/17_Day/17_day_starter/index.html b/17_Day/17_day_starter/index.html index 61784f3..e76eeef 100644 --- a/17_Day/17_day_starter/index.html +++ b/17_Day/17_day_starter/index.html @@ -7,9 +7,8 @@

30DaysOfJavaScript:17 Day

-

DOM

+

Web Storage

- diff --git a/17_Day/17_day_starter/scripts/main.js b/17_Day/17_day_starter/scripts/main.js index c6045c8..e69de29 100644 --- a/17_Day/17_day_starter/scripts/main.js +++ b/17_Day/17_day_starter/scripts/main.js @@ -1,2 +0,0 @@ -console.log(countries) -alert('Open the console and check if the countries has been loaded') \ No newline at end of file From 6f16325085f3baa4a2945cf5271e801e849a6722 Mon Sep 17 00:00:00 2001 From: Patrick Njuguna Date: Sat, 18 Jan 2020 13:28:21 +0300 Subject: [PATCH 19/21] regular expressions examples typo fixes --- 12_Day/12_day_regular_expressions.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/12_Day/12_day_regular_expressions.md b/12_Day/12_day_regular_expressions.md index 71f95f7..676085a 100644 --- a/12_Day/12_day_regular_expressions.md +++ b/12_Day/12_day_regular_expressions.md @@ -350,7 +350,7 @@ Zero or many times. The pattern could may not occur or it can occur many times. const pattern = /[a].*/g //. any character, + any character one or more times const txt = 'Apple and banana are fruits' -const matches = re.match(pattern) +const matches = txt.match(pattern) console.log(matches) // ['and banana are fruits'] @@ -383,7 +383,7 @@ console.log(matches) // ['2019'] ```js const txt = 'This regular expression example was made in December 6, 2019.' -const regex_pattern = /\d{1, 4}/g // 1 to 4 +const pattern = /\d{1,4}/g // 1 to 4 const matches = txt.match(pattern) console.log(matches) // ['6', '2019'] ``` @@ -396,7 +396,7 @@ console.log(matches) // ['6', '2019'] const txt = 'This regular expression example was made in December 6, 2019.' const pattern = /^This/ // ^ means starts with const matches = txt.match(pattern) -console.log(matches) / ['This'] +console.log(matches) // ['This'] ``` - Negation @@ -405,12 +405,12 @@ console.log(matches) / ['This'] const txt = 'This regular expression example was made in December 6, 2019.' const pattern = /[^A-Za-z,. ]+/g // ^ in set character means negation, not A to Z, not a to z, no space, no coma no period const matches = txt.match(pattern) -console.log(matches) ["6", "2019"] +console.log(matches) // ["6", "2019"] ``` ### Exact match -It should hav ^ starting and $ which is an end. +It should have ^ starting and $ which is an end. ```js let pattern = /^[A-Z][a-z]{3,12}$/; From e9b7ce001be7c36b7add6179bdea796f9ccc81b8 Mon Sep 17 00:00:00 2001 From: Patrick Njuguna Date: Sat, 18 Jan 2020 14:01:04 +0300 Subject: [PATCH 20/21] default values with constructor fix to allow example to be run without returning already defined error --- 15_Day/15_day_classes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/15_Day/15_day_classes.md b/15_Day/15_day_classes.md index e878e53..400d03d 100644 --- a/15_Day/15_day_classes.md +++ b/15_Day/15_day_classes.md @@ -204,9 +204,10 @@ class Person { } const person1 = new Person() // it will take the default values -const person1 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') +const person2 = new Person('Lidiya', 'Tekle', 28, 'Finland', 'Espoo') console.log(person1) +console.log(person2) ``` ```sh From 75a187864d0f8d81b2c22f9c46a570a538f283d8 Mon Sep 17 00:00:00 2001 From: Patrick Njuguna Date: Sat, 18 Jan 2020 14:12:00 +0300 Subject: [PATCH 21/21] json examples fix avoid using 'text' as a variable name since it is reserved and returns an error --- 16_Day/16_day_json.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/16_Day/16_day_json.md b/16_Day/16_day_json.md index b466001..ff04882 100644 --- a/16_Day/16_day_json.md +++ b/16_Day/16_day_json.md @@ -327,8 +327,8 @@ const users = { } } -const text = JSON.stringify(users, undefined, 4) -console.log(text) // text means JSON- because json is a string form of an object. +const txt = JSON.stringify(users, undefined, 4) +console.log(txt) // text means JSON- because json is a string form of an object. ``` ```sh @@ -446,8 +446,8 @@ const user = { points: 30 } -const text = JSON.stringify(user,['firstName', 'lastName', 'country', 'city', 'age'],4) -console.log(text) +const txt = JSON.stringify(user,['firstName', 'lastName', 'country', 'city', 'age'],4) +console.log(txt) ``` ```sh @@ -594,4 +594,4 @@ const text = `{ 🎉 CONGRATULATIONS ! 🎉 -[<< Day 15](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) | [Day 17 >>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/17_Day/17_day_web_storage.md) \ No newline at end of file +[<< Day 15](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/15_Day/15_day_classes.md) | [Day 17 >>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/17_Day/17_day_web_storage.md)