All language subtitles for 5. forEach With Maps and Sets

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian Download
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 1 00:00:01,510 --> 00:00:05,500 So we learned about the forEach method on arrays. 2 2 00:00:05,500 --> 00:00:10,500 However, forEach is also available on maps and sets. 3 3 00:00:10,960 --> 00:00:13,510 And so let's take a small detour now 4 4 00:00:13,510 --> 00:00:17,793 and see how forEach works with maps and with sets. 5 5 00:00:19,450 --> 00:00:21,930 And we're gonna start with maps, 6 6 00:00:21,930 --> 00:00:25,980 and for that let's cut this currencies map 7 7 00:00:25,980 --> 00:00:27,333 that we have up here. 8 8 00:00:30,610 --> 00:00:32,020 All right. 9 9 00:00:32,020 --> 00:00:36,090 And remember that in this array of arrays, 10 10 00:00:36,090 --> 00:00:39,870 each of these array elements, so this inner array, 11 11 00:00:39,870 --> 00:00:42,110 will be one entry of the map, 12 12 00:00:42,110 --> 00:00:46,330 where this here is the key, and this is the value. 13 13 00:00:46,330 --> 00:00:47,600 All right. 14 14 00:00:47,600 --> 00:00:52,600 And so we can call forEach also on a map. 15 15 00:00:54,460 --> 00:00:59,460 So forEach, and then again, the callback function, 16 16 00:00:59,640 --> 00:01:03,700 and now this callback function also has three parameters. 17 17 00:01:03,700 --> 00:01:05,900 So when the forEach method calls it, 18 18 00:01:05,900 --> 00:01:09,220 it will call this function with three arguments. 19 19 00:01:09,220 --> 00:01:12,193 So the first one will be the current value, 20 20 00:01:13,220 --> 00:01:16,010 so the current value in the current iteration, 21 21 00:01:16,010 --> 00:01:19,500 the second one is the key, and the third one 22 22 00:01:19,500 --> 00:01:23,820 is the entire map that is being looped over. 23 23 00:01:23,820 --> 00:01:26,600 And so you see, this is similar to the array, 24 24 00:01:26,600 --> 00:01:28,530 where in the array, 25 25 00:01:28,530 --> 00:01:31,990 the first parameter is the current element of the array, 26 26 00:01:31,990 --> 00:01:33,720 the second one is the index 27 27 00:01:33,720 --> 00:01:36,350 and the third is the entire array. 28 28 00:01:36,350 --> 00:01:40,040 And so there is a nice correspondence between these, 29 29 00:01:40,040 --> 00:01:42,603 and so this is quite easy to memorize here. 30 30 00:01:43,540 --> 00:01:47,040 And so let's just log a very quick string here. 31 31 00:01:49,720 --> 00:01:51,780 So this is not really that important, 32 32 00:01:51,780 --> 00:01:55,810 but I wanted to show you that forEach also exists 33 33 00:01:55,810 --> 00:01:58,003 on these two new data structures. 34 34 00:01:59,200 --> 00:02:02,420 Now, okay, and indeed it worked. 35 35 00:02:02,420 --> 00:02:05,640 So we got the key of each of the map entries 36 36 00:02:05,640 --> 00:02:08,570 and then also the value. 37 37 00:02:08,570 --> 00:02:12,703 Alright, and so now let's try the same with a set. 38 38 00:02:14,070 --> 00:02:18,933 So this is with a map and this is now with a set. 39 39 00:02:19,780 --> 00:02:23,183 So let's create currenciesUnique. 40 40 00:02:25,550 --> 00:02:29,500 Let's say, so new set. 41 41 00:02:29,500 --> 00:02:33,150 And remember that in here, we need to pass an Iterable. 42 42 00:02:33,150 --> 00:02:36,310 And so I will use an array here. 43 43 00:02:36,310 --> 00:02:40,283 So let's just create a couple of strings here, 44 44 00:02:42,030 --> 00:02:46,173 another US dollar, and then some Euros. 45 45 00:02:49,330 --> 00:02:50,523 Let's just take a look, 46 46 00:02:52,920 --> 00:02:56,033 and indeed it only has the unique values. 47 47 00:02:56,900 --> 00:02:58,820 So just as expected, 48 48 00:02:58,820 --> 00:03:02,903 and so let's now call forEach on this set as well. 49 49 00:03:04,270 --> 00:03:05,870 So the currenciesUnique.forEach. 50 50 00:03:08,960 --> 00:03:12,120 And now once again, the callback function 51 51 00:03:12,120 --> 00:03:16,600 has the parameters of value, key and map, 52 52 00:03:18,570 --> 00:03:22,283 and we will see in a second, if that actually makes sense. 53 53 00:03:23,510 --> 00:03:25,183 So let's look to the console. 54 54 00:03:26,430 --> 00:03:28,030 Actually the same thing as here. 55 55 00:03:30,960 --> 00:03:33,310 So let's see what's gonna happen. 56 56 00:03:33,310 --> 00:03:38,013 So remember we are logging the key and the value, okay? 57 57 00:03:38,960 --> 00:03:43,960 But now we get USD, USD, and here GBP, GBP. 58 58 00:03:45,670 --> 00:03:48,620 And so what this means is that the key here 59 59 00:03:48,620 --> 00:03:52,060 is exactly the same as the value. 60 60 00:03:52,060 --> 00:03:54,240 So why is that? 61 61 00:03:54,240 --> 00:03:57,880 Well, a set doesn't have keys, right? 62 62 00:03:57,880 --> 00:04:00,040 And it doesn't have indexes either. 63 63 00:04:00,040 --> 00:04:04,410 And so there is no value that would make sense for the key. 64 64 00:04:04,410 --> 00:04:07,460 All right, so essentially this key here 65 65 00:04:07,460 --> 00:04:09,050 makes no sense at all. 66 66 00:04:09,050 --> 00:04:11,450 It wouldn't even have to be there. 67 67 00:04:11,450 --> 00:04:16,450 And so the people who designed this forEach method for sets, 68 68 00:04:16,520 --> 00:04:20,760 they could have simply omitted the second argument, right? 69 69 00:04:20,760 --> 00:04:22,860 Well, if they did that, 70 70 00:04:22,860 --> 00:04:26,600 then this forEach would have been different from the others. 71 71 00:04:26,600 --> 00:04:30,400 And so that would then create confusion in developers, 72 72 00:04:30,400 --> 00:04:33,980 and therefore it was decided to keep the same signature. 73 73 00:04:33,980 --> 00:04:38,080 So basically to keep the same three parameters 74 74 00:04:38,080 --> 00:04:40,330 in this callback function and simply 75 75 00:04:40,330 --> 00:04:44,210 to set the second one to the first one. 76 76 00:04:44,210 --> 00:04:47,523 So we can just write value here as well, 77 77 00:04:49,470 --> 00:04:51,433 just to avoid that confusion. 78 78 00:04:53,030 --> 00:04:53,863 All right. 79 79 00:04:55,250 --> 00:04:56,550 Now, and of course, 80 80 00:04:56,550 --> 00:05:00,010 we cannot have the duplicate parameter name. 81 81 00:05:00,010 --> 00:05:02,460 And so we can just use an underscore, 82 82 00:05:02,460 --> 00:05:05,750 which in JavaScript means a throwaway variable. 83 83 00:05:05,750 --> 00:05:09,550 So that means a variable that is completely unnecessary. 84 84 00:05:09,550 --> 00:05:12,460 So it's just a convention which we will see again 85 85 00:05:12,460 --> 00:05:13,573 a little bit later. 86 86 00:05:15,610 --> 00:05:17,200 Okay, and so now it should work 87 87 00:05:18,480 --> 00:05:20,640 and yeah, that's all you need to know 88 88 00:05:20,640 --> 00:05:24,360 about the forEach method for maps and sets. 89 89 00:05:24,360 --> 00:05:27,810 So it's very straightforward if you already understood 90 90 00:05:27,810 --> 00:05:29,493 how it works for arrays. 7759

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.