Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,260 --> 00:00:03,950
So we learned about the for of loop
2
00:00:03,950 --> 00:00:08,170
to loop over a race, which remember is an Iterable,
3
00:00:08,170 --> 00:00:10,640
but we can also loop over objects,
4
00:00:10,640 --> 00:00:12,450
which are not Iterable,
5
00:00:12,450 --> 00:00:14,193
but in an indirect way.
6
00:00:15,950 --> 00:00:18,070
Now we have different options here,
7
00:00:18,070 --> 00:00:21,670
depending on what exactly we want to loop over.
8
00:00:21,670 --> 00:00:25,300
So do we want to loop over the objects, property names
9
00:00:25,300 --> 00:00:28,460
over the values or both together.
10
00:00:28,460 --> 00:00:32,310
And let's start by simply looping over property names.
11
00:00:32,310 --> 00:00:35,860
And so remember they are also called keys.
12
00:00:35,860 --> 00:00:39,450
Now, ultimately we will still have to use the for of loop
13
00:00:39,450 --> 00:00:42,170
to loop over the array, but again,
14
00:00:42,170 --> 00:00:44,420
we're going to do that in an indirect way.
15
00:00:44,420 --> 00:00:47,980
So we're not actually looping over the object itself.
16
00:00:47,980 --> 00:00:51,930
Instead, we're going to loop over, an array.
17
00:00:51,930 --> 00:00:53,163
So let me show you how.
18
00:00:56,220 --> 00:00:57,480
So I'm going to call this day
19
00:00:57,480 --> 00:00:59,490
and you will see in a moment why,
20
00:00:59,490 --> 00:01:00,833
and now of,
21
00:01:01,710 --> 00:01:03,150
and then I say object
22
00:01:04,190 --> 00:01:05,860
dot keys
23
00:01:05,860 --> 00:01:09,830
and we pass in the opening hours object.
24
00:01:09,830 --> 00:01:13,490
And now lets simply to see what happens here.
25
00:01:13,490 --> 00:01:17,290
Log the day variable to the console.
26
00:01:17,290 --> 00:01:20,190
And then I will explain what happened here.
27
00:01:20,190 --> 00:01:23,680
So indeed we get Thursday, Friday and Saturday,
28
00:01:23,680 --> 00:01:28,063
which are exactly the three key names of the object.
29
00:01:29,270 --> 00:01:30,470
So we can see that here.
30
00:01:32,470 --> 00:01:35,930
So indeed Thursday, Friday and Saturday.
31
00:01:35,930 --> 00:01:37,590
So let's take a closer look
32
00:01:37,590 --> 00:01:41,080
at this mysterious objects dot keys.
33
00:01:41,080 --> 00:01:43,030
And let's do that here before actually.
34
00:01:46,460 --> 00:01:51,360
So let's just say properties, equal object
35
00:01:51,360 --> 00:01:52,203
dot keys,
36
00:01:53,590 --> 00:01:55,690
and then again, opening hours.
37
00:01:55,690 --> 00:01:59,743
And now I want to take a look at the result here.
38
00:02:01,880 --> 00:02:05,863
And so indeed it is an array with the three property names.
39
00:02:06,824 --> 00:02:09,400
Okay. And we can actually also use this
40
00:02:09,400 --> 00:02:13,660
to now compute how many properties are in the object.
41
00:02:13,660 --> 00:02:16,960
So let's say we wanted to print a strings saying
42
00:02:16,960 --> 00:02:20,260
how many days the restaurant is open.
43
00:02:20,260 --> 00:02:22,750
That would be simple. Right?
44
00:02:22,750 --> 00:02:24,453
We can just log to the console.
45
00:02:25,360 --> 00:02:26,990
We are
46
00:02:26,990 --> 00:02:28,530
open
47
00:02:28,530 --> 00:02:30,120
on
48
00:02:30,120 --> 00:02:30,953
and then
49
00:02:32,110 --> 00:02:33,030
properties
50
00:02:34,440 --> 00:02:35,403
dot length.
51
00:02:38,270 --> 00:02:41,750
And now we get the number of properties here, of course.
52
00:02:41,750 --> 00:02:44,560
And so that's three days. Okay.
53
00:02:44,560 --> 00:02:47,930
And so this is also the array
54
00:02:47,930 --> 00:02:49,730
that we're going to be looping over.
55
00:02:50,570 --> 00:02:52,410
So properties.
56
00:02:52,410 --> 00:02:55,840
And that's why I called this variable here day
57
00:02:55,840 --> 00:02:59,650
because this array basically contains three days.
58
00:02:59,650 --> 00:03:02,720
Now let's actually do something cool here.
59
00:03:02,720 --> 00:03:05,460
And instead store this into a variable
60
00:03:06,960 --> 00:03:09,120
and let's say open
61
00:03:10,009 --> 00:03:11,940
and then STR for string
62
00:03:14,660 --> 00:03:17,700
And tier a colon because now using the loop,
63
00:03:17,700 --> 00:03:22,230
I will basically keep adding to this string.
64
00:03:22,230 --> 00:03:25,363
So open string plus equal,
65
00:03:26,200 --> 00:03:27,463
and then the current day,
66
00:03:29,580 --> 00:03:31,630
so day and then a comma.
67
00:03:31,630 --> 00:03:34,410
And so here we are then essentially building
68
00:03:34,410 --> 00:03:35,603
just this string.
69
00:03:37,730 --> 00:03:40,383
So that's similar to something we did already before.
70
00:03:41,560 --> 00:03:44,230
And so the end is we are open on three days,
71
00:03:44,230 --> 00:03:47,160
Thursday, Friday, Saturday.
72
00:03:47,160 --> 00:03:50,923
Great. So that's property names. Let's write that here.
73
00:03:57,300 --> 00:03:59,900
Okay. But what if we actually wanted
74
00:03:59,900 --> 00:04:02,053
the property values themselves?
75
00:04:04,420 --> 00:04:06,250
Well, then we would simply use
76
00:04:07,560 --> 00:04:09,310
object
77
00:04:09,310 --> 00:04:11,373
dot values.
78
00:04:12,810 --> 00:04:14,480
So let's also store this here
79
00:04:16,000 --> 00:04:20,390
and of course, then we need to pass in the object itself.
80
00:04:20,390 --> 00:04:23,230
So that's again, opening hours
81
00:04:25,190 --> 00:04:26,580
missing the equal sign.
82
00:04:26,580 --> 00:04:30,460
And now let's just take a look at the values
83
00:04:34,220 --> 00:04:37,700
and indeed, these are exactly the three values
84
00:04:37,700 --> 00:04:40,270
that we specified right here.
85
00:04:40,270 --> 00:04:42,260
So this value here,
86
00:04:42,260 --> 00:04:43,093
right?
87
00:04:43,093 --> 00:04:47,520
So open 12, close 22, this one and this one.
88
00:04:47,520 --> 00:04:48,550
Right?
89
00:04:48,550 --> 00:04:53,170
So before we had the keys, now we have the values
90
00:04:53,170 --> 00:04:55,950
and there no needs to now loop over them again,
91
00:04:55,950 --> 00:04:59,253
because it's going to work exactly the same as here.
92
00:05:00,330 --> 00:05:03,110
Okay. But now to really simulate,
93
00:05:03,110 --> 00:05:05,810
to loop over the entire object,
94
00:05:05,810 --> 00:05:08,310
we actually need the entries.
95
00:05:08,310 --> 00:05:12,610
And so entries is basically names plus the values together.
96
00:05:12,610 --> 00:05:15,570
And we already saw the entries before.
97
00:05:15,570 --> 00:05:17,340
So when we looped over
98
00:05:18,400 --> 00:05:19,340
the array
99
00:05:19,340 --> 00:05:22,370
and I think that's going to be somewhere down here
100
00:05:22,370 --> 00:05:24,700
oh and actually I already passed it.
101
00:05:24,700 --> 00:05:27,140
So indeed here it is.
102
00:05:27,140 --> 00:05:31,360
So here on the array, we called this entries method.
103
00:05:31,360 --> 00:05:34,030
And so the entries returned the index number
104
00:05:34,030 --> 00:05:36,030
and the element itself.
105
00:05:36,030 --> 00:05:38,760
And so we can do something similar on objects
106
00:05:38,760 --> 00:05:42,640
and that will then also return the key and the value.
107
00:05:42,640 --> 00:05:45,780
Okay, now it works differently on objects
108
00:05:45,780 --> 00:05:47,580
because it's not going to be a method
109
00:05:47,580 --> 00:05:50,370
that we call on the object itself.
110
00:05:50,370 --> 00:05:52,630
So here we had the menu array
111
00:05:52,630 --> 00:05:56,450
and then we did that menu array dot entries,
112
00:05:56,450 --> 00:05:57,630
but now here we do it
113
00:05:58,900 --> 00:05:59,733
differently.
114
00:06:00,700 --> 00:06:02,283
So we use again object,
115
00:06:03,180 --> 00:06:05,090
dot entries
116
00:06:05,090 --> 00:06:08,253
and then we pass in once again, the opening hours.
117
00:06:10,140 --> 00:06:12,780
So this distinction between the array and the object
118
00:06:12,780 --> 00:06:15,963
is important as we loop over the entire object.
119
00:06:17,920 --> 00:06:22,920
Okay. I actually run into that problem myself at some point.
120
00:06:23,090 --> 00:06:25,640
And so that's why I'm telling it to you.
121
00:06:25,640 --> 00:06:29,430
But anyway, let's store this again into a variable.
122
00:06:29,430 --> 00:06:32,030
And so then you have all the three versions here,
123
00:06:32,030 --> 00:06:33,883
nicely organized in your code.
124
00:06:35,410 --> 00:06:37,773
And let's take a look here at the entries now.
125
00:06:39,550 --> 00:06:43,300
And so as you might've expected, we now get an array.
126
00:06:43,300 --> 00:06:46,580
So all of these keys, values and entries
127
00:06:46,580 --> 00:06:50,060
basically transformed the object into an array.
128
00:06:50,060 --> 00:06:53,600
And then here we have first the key
129
00:06:53,600 --> 00:06:56,090
and then then value.
130
00:06:56,090 --> 00:06:58,800
All right. And so now we can use this
131
00:06:58,800 --> 00:07:01,453
to basically loop over the object.
132
00:07:02,760 --> 00:07:06,533
So for, and now let's start by writing the of,
133
00:07:08,650 --> 00:07:11,933
we'll just call it X for now. Then we will take a look.
134
00:07:13,030 --> 00:07:14,720
So X of
135
00:07:15,710 --> 00:07:17,770
the entries that we just generated
136
00:07:19,050 --> 00:07:22,083
and then let's just log them to the console.
137
00:07:24,250 --> 00:07:26,700
And so let me get rid
138
00:07:27,700 --> 00:07:29,333
of this one here.
139
00:07:31,110 --> 00:07:33,780
All right. So that's weird.
140
00:07:33,780 --> 00:07:37,560
Oh, it's because of course I want to log X.
141
00:07:37,560 --> 00:07:39,820
Oh yeah, that's correct.
142
00:07:39,820 --> 00:07:44,240
So now we have each key and each value, all right.
143
00:07:44,240 --> 00:07:46,793
Now we want to print to the console,
144
00:07:48,846 --> 00:07:50,720
a string like this,
145
00:07:50,720 --> 00:07:53,260
so on the weekday.
146
00:07:53,260 --> 00:07:54,453
And so that is the key.
147
00:07:55,360 --> 00:07:57,980
And so I'm using these variables here,
148
00:07:57,980 --> 00:07:59,800
before I actually defined them.
149
00:07:59,800 --> 00:08:03,370
So to make it easier to say what we want to define.
150
00:08:03,370 --> 00:08:05,610
So for example, on Friday,
151
00:08:05,610 --> 00:08:08,083
we open at,
152
00:08:09,920 --> 00:08:13,610
and then we're going to have an open variable
153
00:08:13,610 --> 00:08:15,470
and close
154
00:08:15,470 --> 00:08:16,303
at
155
00:08:17,690 --> 00:08:19,040
close.
156
00:08:19,040 --> 00:08:21,350
So how will we do this?
157
00:08:21,350 --> 00:08:23,610
Well, just like we did with the arrays,
158
00:08:23,610 --> 00:08:26,203
we can use this structuring right here.
159
00:08:27,540 --> 00:08:28,933
So let's do that.
160
00:08:29,900 --> 00:08:31,810
The first one is the key.
161
00:08:31,810 --> 00:08:34,850
And remember the second one is the value.
162
00:08:34,850 --> 00:08:36,490
So we can do this,
163
00:08:36,490 --> 00:08:40,330
but we already know that this here is an object, right?
164
00:08:40,330 --> 00:08:44,180
And so therefore we can also immediately destructure
165
00:08:44,180 --> 00:08:45,323
that object here.
166
00:08:46,560 --> 00:08:48,193
So fair enough.
167
00:08:49,570 --> 00:08:51,053
Open and close.
168
00:08:51,950 --> 00:08:55,290
So the two variable names inside of that object
169
00:08:55,290 --> 00:08:56,620
are open and close.
170
00:08:56,620 --> 00:09:00,340
And so here we specify exactly these property names
171
00:09:00,340 --> 00:09:04,943
and so they get destructured and therefore this works.
172
00:09:05,800 --> 00:09:07,043
So let's see that again.
173
00:09:08,220 --> 00:09:11,550
And so, yeah, so this is here the value basically
174
00:09:11,550 --> 00:09:12,383
all of this.
175
00:09:13,530 --> 00:09:14,363
Right?
176
00:09:14,363 --> 00:09:17,620
And so here we have open and close.
177
00:09:17,620 --> 00:09:20,203
And so that's exactly what we defined here as well.
178
00:09:21,440 --> 00:09:24,610
And therefore, we then end up with the string here,
179
00:09:24,610 --> 00:09:27,490
which got all of the data out of the object
180
00:09:27,490 --> 00:09:30,440
into this nicely and neat string.
181
00:09:30,440 --> 00:09:32,030
Alright.
182
00:09:32,030 --> 00:09:33,770
So this part here is necessary
183
00:09:33,770 --> 00:09:37,720
because the value itself is also an object.
184
00:09:37,720 --> 00:09:41,660
But if you had a more simple object with a simpler value,
185
00:09:41,660 --> 00:09:43,890
then you would, of course only do this here
186
00:09:43,890 --> 00:09:48,090
as destructuring, just a key and a value.
187
00:09:48,090 --> 00:09:50,330
And of course you could then give them other names
188
00:09:50,330 --> 00:09:51,880
as you would like.
189
00:09:51,880 --> 00:09:53,983
So here we can just call them day.
190
00:09:54,960 --> 00:09:58,510
We can use any name that we want. Awesome.
191
00:09:58,510 --> 00:10:01,190
So we're doing great progress here
192
00:10:01,190 --> 00:10:04,260
and now it's time to practice that once more.
193
00:10:04,260 --> 00:10:06,993
So I see you in the next coding challenge.
13390
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.