All language subtitles for 135 Coding Challenge 1.en_US1

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
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
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

Original subtitles

Welcome to the first coding challenge of this section.

And this one is gonna be an exciting one.

Because in this one,

we are building a simple Pol application.

So a pol has a question,

an array of options from which people can choose,

and an array with the number of replies for each option.

And this data is stored in this object here

that it already created for you.

Now you can copy this object from here,

or you can get it from the final code

that's available for the section in the GitHub repository.

Now, okay, so you see, we have to question,

the array of options, and also a new array of answers.

So this code here,

we will learn how it works in the next lecture.

But this will create this array of four zeros.

And that's because there are four options here,

for this question.

And now, here are your tasks.

So first up in that poll object,

create a new method called register new answer.

And this method does two things.

So displays a prompt window

for the user to input the number of the selected option.

And here, I want the text to look exactly like this.

Then,

based on the inputted number,

so the user should input either zero, one, two or three.

So based on that, update the answers array.

So if the user,

gives three here,

as the option,

then increase the value at position three of the array.

And of course, increase that by one.

To do this, make sure that the input is actually a number.

And if that number makes sense,

then I want you to call this method,

whenever the user clicks on this button.

And so this is where the second button here,

comes into play.

Then number three, create a method called display results.

And this one, should, as the name says,

display the results of the poll.

Now this method takes an argument called type.

And that type should be a string, as I say, here,

and the value of that string should either be string,

or array.

So these are two different ways of displaying the results,

basically.

Now, if the type is set to the string of array,

then simply display the results array as it is,

using a normal console dot log.

And this should actually be the default option.

All right. Now, if the type is set to string,

then display a string like this one here.

Okay. And then once you have this method built,

run it each time after the register a new answer.

So essentially,

whenever someone clicks on this button here,

it will call this;

there's register a new answer method.

And then this method itself will call display results.

Okay. And to do this,

use as many of the tools that you learned in this section,

and probably also the last sections,

and really all the course itself.

Now, there are a lot of moving parts in this challenge.

And it might not be as straightforward as it seems here.

So if you need to cut some corners,

and make some things a little bit easier,

then that's absolutely no problem.

At least just write some code on your own.

That's really my main goal with this challenge.

Then if you manage to do these challenges,

or to do the challenge as instructed here,

then I also have a bonus for you.

And so that is to use these display results method,

that you built before to display these two arrays,

that we have here in the test data.

Okay. So usually,

you simply use this method to display

the answers array that's inside of the object.

But here, I want you to really display simply this array,

and this array.

And of course,

do not put this array here inside of this poll object.

Okay, you should use them individually.

Now, for doing this,

you have to really think about

what the disk keyword should look like in this situation.

And then you need to,

and then you basically need to set this keyword accordingly.

Now, okay, so that's a nice challenge here,

and one thing that is certain is that,

your code will look different than mine.

I'm just a normal developer like anyone else,

and everybody writes their own code.

And so my code is different from everyone else's code,

probably.

And so yeah, that's completely normal,

if you are starting to develop your own style.

So take maybe an hour even to do all of this,

and then come back to this video to check out my solution.

So let's get to work here. I hope it went well for you,

when you try it out on your own.

And you can always share your experience in the q&a area.

Anyway, let's now get the answer here.

And so for that we use prompt.

So const,

answer,

prompt.

And so, let's see what it has to look like.

So it's just a question,

then it's a new line,

then it's these options,

another new line, and then right up to number.

So this part is always the same.

So I'm just copying it from here.

So, we want to grab the question first.

And so that is,

this,

dot question.

Then the new line, which is this, remember,

then we want the options.

And so one new line for each of these options here.

So this is an array, we want to transform it to a string.

And so for that, we use the join method.

So this one we learned about in the previous section.

So I hope you remember this one.

And so we take the options array here and join it.

And we do join it again by the newline character.

Now, okay, and then finally, another new line.

And then this part.

Now, right? Oh, and then we of course,

also need to convert this result to a number.

All right. So this looks good.

Let's just add a comment here. So this is get the answer.

And then here second, is to,

register.

I think that's,

what we had here.

So the first step is to get the answer.

And the second is to basically update the answers.

So I'm just calling that register the answer.

Okay, but here, let's actually start by trying it out.

So let's do for now, poll dot

register new answer.

And indeed,

this is exactly the formatting we were looking for,

let's say three. And indeed, we get three.

Nice.

And so now let's register the answer.

And remember that we should check,

if this value is actually a number.

And also, if it makes actually sense.

So in terms of the number of options.

So first, we check if it is indeed a number.

And there are better ways of checking this,

but more about that later.

And we also want to know if the answer,

is below the length of this array, basically. Right?

So if the answer is 10, then that doesn't make any sense.

And so it must stay below the length.

So the length here is four.

And so the max reply that we accept is three.

So answer needs to stay below this dot answers,

dot length.

Now here, we could not do an if statement,

and basically saying that if this is true,

then increase the answers array at the correct position.

However, instead,

this is actually a great use case for short circuiting,

with the end operator.

So let's simply do this. So this dot answers,

and then we go to the position of answer,

and then simply increase it like this.

Now, all right, so if this is true,

then the end operator will keep going. Right?

And so then this is evaluated, and if it's still true,

then this here is executed.

But if either one of these conditions here is false,

then the end operator will short circuit,

and this part here is not executed.

So this is a nice use case for short circuiting,

because the code that we want to execute,

is just one simple line of code.

Now, okay. So now let's,

then,

take a look at the answers.

So this dot answers.

So this is for now, the register a new answer method.

And now let's focus here on point number two,

which is to actually call the method,

whenever we click on this ENTER button here.

So,

let's select that button,

document dot query selector.

And now we need the class name.

Let's check that out here again, in the elements.

And so it has the class of poll.

So poll,

dot @ event listener.

Click, and now the function that we want to execute.

And so that is @ poll

dot

register new answer.

All right. Now, do you think that this will work like this?

And let's give it a save, actually.

And there is an error.

And that's because we're trying to read property join,

of undefined, right here.

And so the problem here is, as you might have guessed,

because we talked about this before,

is that the disk keyword right now, points to this element.

So to this poll button here.

And so again, there is because in an event handler function,

such as this one here,

that this keyword will always point to the element,

to which it is attached.

And so right now, there is this button.

So to fix this, we need to bind the disk keyword.

And in this case, we need to set it to the poll object.

And so then, in this function here,

which is the result of the bind method,

so in this new function,

the disk keyword will then point to the poll object.

So let's see that, and now indeed, it works.

So that's input zero here.

And indeed, we already get our array,

where the count of the answers in position zero,

has increased. And if we try this, again,

it should become two.

And it does.

Now, in order to actually display these results,

we should create this new method called display results.

Now, right, so it takes a string that is called type,

with array being the default here.

Now, right.

So let's do this.

And also keep in mind,

that this is the kind of string that we want,

if the type is string.

So let's copy this one.

And now here, we add that new method called,

display,

results.

And so it gets the type.

And remember, it has the default set to array.

And so here, we can use the ESX default parameters,

using this equal sign.

So,

if,

type equals,

array,

then simply log,

this,

dot,

enters,

to the console.

Else,

if,

the type equals,

string,

then we want to log something like this to the console.

So once more a template string, or template literal.

And actually this would be outside

results,

are.

And then to create this here,

we can simply join the array together to form a string.

So that's this dot results or actually answers,

dot join, and we join them with a comma and a space.

Now, okay, and so now here,

let's get rid of this console dot log.

And instead, we will now call this method.

So this dot display results.

And that's actually called twice.

Once without passing any argument,

and then here passing in,

string,

and so then we will see both types of results,

printed to the console.

And so this is,

number four here.

So, let's give it a save.

Zero. And, indeed, it works just the same.

Number three,

let's try,

three again.

And so indeed, it works just fine.

Let me now input something else.

And so then nothing changes here.

So the results are not updated.

And that's because of this testing logic that we have here.

Great. So I hope you have been following this far.

So this is similar to what we have been doing.

And now let's check out the bonus here.

So let's use the display results method that we just use,

but to display these two arrays.

Okay, let's copy them just,

so we don't have to scroll so much.

And it says here that we should think about,

what the disk keyword will look like.

So we will do that, of course.

Okay, so these are the arrays that we're gonna work with.

So,

the method is at Pol dot display results.

But as I said,

now, we want to call,

this method here, not with this array.

So not with the answers array, but instead with this array.

So what should we do here?

Well, we will have to use the call method,

because we will need a new disk keyword, right?

Because display results uses this dot answers.

Okay, so the answers come from the disk keyword.

And so if we want to have a different disk keyword,

then we need to use call.

And what should the disk keyword be like?

Well, we need an object,

which contains the answers property here, right?

Otherwise, there is no way for this method,

to call this dot answers.

And so we can simply create a new object,

and say, answers, and then,

this,

this array, and that's it.

Let's try this.

And indeed, here is the result printed.

And that's even now passing us the, the string option.

And so now Indeed, we get poll results are,

five, two, and three.

All right. So again, to recap, this works,

because this function here is looking for this dot answers.

But our array is, well, it's simply out here.

So we need a way to make this dot answers,

equal to this array.

And so that's why we used to call method here,

so that we could manually set the disk keyword,

to a new object,

which as the answers property has that new array.

And now let's just try it with the other one here.

And,

and we can do the same without the string,

and then it will just lock the array itself.

And yeah, that works just fine.

Great.

Now, what we did here, it's not really a real scenario,

but it's still good for us to use these concepts,

in some different ways,

to really get used to how all of these concepts,

work together.

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