Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
1
00:00:01,170 --> 00:00:02,770
So after arrays,
2
2
00:00:02,770 --> 00:00:04,470
it's now time to learn about
3
3
00:00:04,470 --> 00:00:08,963
another data structure in JavaScript, which is objects.
4
4
00:00:10,490 --> 00:00:12,210
So up until this point,
5
5
00:00:12,210 --> 00:00:15,580
we have been using arrays as a data structure
6
6
00:00:15,580 --> 00:00:18,710
to basically store multiple related values
7
7
00:00:18,710 --> 00:00:20,490
in the same variable.
8
8
00:00:20,490 --> 00:00:22,663
So let's just quickly recap that.
9
9
00:00:24,290 --> 00:00:26,210
So Jonah's array,
10
10
00:00:26,210 --> 00:00:29,180
and you don't need to write this code, okay?
11
11
00:00:29,180 --> 00:00:32,290
I'm really just trying to recap here.
12
12
00:00:32,290 --> 00:00:33,633
So we have the first name,
13
13
00:00:34,630 --> 00:00:37,800
and you see that I'm writing this in multiple lines now.
14
14
00:00:37,800 --> 00:00:40,040
And that is perfectly acceptable.
15
15
00:00:40,040 --> 00:00:43,130
So, sometimes that's easier to give us
16
16
00:00:43,130 --> 00:00:46,410
an overview of a data structure.
17
17
00:00:46,410 --> 00:00:48,600
As long as we remember the commas here
18
18
00:00:48,600 --> 00:00:51,943
after each of the elements, we're gonna be fine.
19
19
00:00:53,180 --> 00:00:56,973
So then we have kind of this age calculation here.
20
20
00:00:58,170 --> 00:00:59,860
Then we add the job,
21
21
00:00:59,860 --> 00:01:02,480
and even an array of friends.
22
22
00:01:02,480 --> 00:01:05,533
So we have an array inside an array.
23
23
00:01:08,360 --> 00:01:13,173
So Michael, Peter, and Steven.
24
24
00:01:14,130 --> 00:01:17,650
So again, this is basically a data structure
25
25
00:01:17,650 --> 00:01:19,930
which combines multiple values
26
26
00:01:19,930 --> 00:01:24,320
which all belong to this Jonas entity.
27
27
00:01:24,320 --> 00:01:26,320
Now we know intuitively
28
28
00:01:26,320 --> 00:01:28,780
that this first element here of the array
29
29
00:01:28,780 --> 00:01:31,000
should be called the first name.
30
30
00:01:31,000 --> 00:01:33,190
And this one is the last name.
31
31
00:01:33,190 --> 00:01:35,300
This one could be called age,
32
32
00:01:35,300 --> 00:01:37,080
this one could be called job,
33
33
00:01:37,080 --> 00:01:40,100
and this one could be called the friends.
34
34
00:01:40,100 --> 00:01:40,950
But in arrays,
35
35
00:01:40,950 --> 00:01:44,470
there is no way of giving these elements a name.
36
36
00:01:44,470 --> 00:01:47,270
And so we can't reference them by name,
37
37
00:01:47,270 --> 00:01:49,530
but only by their order number
38
38
00:01:49,530 --> 00:01:51,950
in which they appear in the array.
39
39
00:01:51,950 --> 00:01:54,070
And so to solve that problem,
40
40
00:01:54,070 --> 00:01:57,040
we have another data structure in JavaScript,
41
41
00:01:57,040 --> 00:01:59,120
which is objects.
42
42
00:01:59,120 --> 00:02:02,600
So in objects, we actually define key value pairs.
43
43
00:02:02,600 --> 00:02:06,153
And so then we can give each of these values here, a name.
44
44
00:02:07,030 --> 00:02:09,020
So let's see how.
45
45
00:02:09,020 --> 00:02:11,263
So again, we're defining a variable.
46
46
00:02:12,350 --> 00:02:14,920
And so I'm calling this one Jonas now,
47
47
00:02:14,920 --> 00:02:17,460
and then this is the actual object.
48
48
00:02:17,460 --> 00:02:19,480
So now instead of the square brackets
49
49
00:02:19,480 --> 00:02:21,000
that we use for arrays,
50
50
00:02:21,000 --> 00:02:25,210
we use the curly brackets or curly braces.
51
51
00:02:25,210 --> 00:02:28,160
So this is the second time we're seeing the curly braces.
52
52
00:02:28,160 --> 00:02:31,700
First, we saw them to define a code block,
53
53
00:02:31,700 --> 00:02:34,510
for example, in an if else statement,
54
54
00:02:34,510 --> 00:02:36,550
or if a switch statement,
55
55
00:02:36,550 --> 00:02:39,000
or even to define a function body.
56
56
00:02:39,000 --> 00:02:40,940
But this is different, okay?
57
57
00:02:40,940 --> 00:02:45,490
So these curly braces here are to define a new object.
58
58
00:02:45,490 --> 00:02:49,640
And so let's now fill up this object with key value pairs.
59
59
00:02:49,640 --> 00:02:53,020
So the key is basically the variable name.
60
60
00:02:53,020 --> 00:02:55,750
So let's say, first name,
61
61
00:02:55,750 --> 00:02:57,610
then a colon,
62
62
00:02:57,610 --> 00:02:59,030
and then the value.
63
63
00:02:59,030 --> 00:03:02,740
And the value can be of any type that we want here.
64
64
00:03:02,740 --> 00:03:04,880
Then to define another key value pair,
65
65
00:03:04,880 --> 00:03:07,170
we just separate them with commas,
66
66
00:03:07,170 --> 00:03:08,593
just like in the array.
67
67
00:03:09,810 --> 00:03:11,750
So last name,
68
68
00:03:11,750 --> 00:03:13,303
and then colon, remember,
69
69
00:03:15,140 --> 00:03:19,150
Schmedtmann, then the age,
70
70
00:03:19,150 --> 00:03:22,173
and once more, we can put any expression here.
71
71
00:03:23,390 --> 00:03:25,210
So this will be calculated,
72
72
00:03:25,210 --> 00:03:27,573
and then will be assigned to age.
73
73
00:03:29,090 --> 00:03:30,533
Then the job,
74
74
00:03:32,080 --> 00:03:33,670
which is teacher.
75
75
00:03:33,670 --> 00:03:35,280
And finally,
76
76
00:03:35,280 --> 00:03:36,840
the friends,
77
77
00:03:36,840 --> 00:03:39,953
and let's just copy this array from here, okay?
78
78
00:03:42,650 --> 00:03:45,600
And so with this we have now an object
79
79
00:03:45,600 --> 00:03:48,460
which contains five key value pairs.
80
80
00:03:48,460 --> 00:03:49,340
So again,
81
81
00:03:49,340 --> 00:03:51,540
these are the five keys,
82
82
00:03:51,540 --> 00:03:53,970
and then each key has a value.
83
83
00:03:53,970 --> 00:03:55,840
And so essentially with this,
84
84
00:03:55,840 --> 00:03:58,900
we were able to assign a name
85
85
00:03:58,900 --> 00:04:01,700
to each of these values that we had.
86
86
00:04:01,700 --> 00:04:04,500
So that's something that was impossible in arrays,
87
87
00:04:04,500 --> 00:04:06,890
but now it is possible.
88
88
00:04:06,890 --> 00:04:10,680
Now each of these keys is also called a property.
89
89
00:04:10,680 --> 00:04:13,630
So we say that this object here,
90
90
00:04:13,630 --> 00:04:18,070
so this object, which is called Jonas has five properties.
91
91
00:04:18,070 --> 00:04:21,500
So property first name with the value of Jonas,
92
92
00:04:21,500 --> 00:04:25,740
property last name with the value of Schmedtmann,
93
93
00:04:25,740 --> 00:04:27,980
and so on and so forth.
94
94
00:04:27,980 --> 00:04:31,780
Now, objects are probably the most fundamental concept
95
95
00:04:31,780 --> 00:04:34,000
in the whole of JavaScript language.
96
96
00:04:34,000 --> 00:04:37,510
So there are many ways of creating objects.
97
97
00:04:37,510 --> 00:04:40,640
And simply writing an object in the code like this
98
98
00:04:40,640 --> 00:04:43,950
is probably the simplest way of creating an object.
99
99
00:04:43,950 --> 00:04:46,640
So here with the curly braces.
100
100
00:04:46,640 --> 00:04:49,780
So there are multiple ways of creating objects.
101
101
00:04:49,780 --> 00:04:52,440
But again, using the curly braces like this
102
102
00:04:52,440 --> 00:04:53,950
is the easiest one,
103
103
00:04:53,950 --> 00:04:57,040
and it's called the object literal Syntax
104
104
00:04:57,040 --> 00:04:59,440
because we are literally writing down
105
105
00:04:59,440 --> 00:05:02,040
the entire object content.
106
106
00:05:02,040 --> 00:05:05,130
So to recap, just like arrays,
107
107
00:05:05,130 --> 00:05:08,270
we use objects to essentially group together
108
108
00:05:08,270 --> 00:05:11,550
different variables that really belong together
109
109
00:05:11,550 --> 00:05:14,150
such as the properties of Jonas
110
110
00:05:14,150 --> 00:05:16,170
that we've been working with.
111
111
00:05:16,170 --> 00:05:19,150
Now, the big difference between objects and arrays,
112
112
00:05:19,150 --> 00:05:22,300
is that in objects, the order of these values
113
113
00:05:22,300 --> 00:05:25,810
does not matter at all when we want to retrieve them.
114
114
00:05:25,810 --> 00:05:28,070
And that's important to keep in mind.
115
115
00:05:28,070 --> 00:05:29,020
So in arrays,
116
116
00:05:29,020 --> 00:05:32,790
the order in which we specify the elements matters a lot
117
117
00:05:32,790 --> 00:05:36,860
because that's how we access these elements, right?
118
118
00:05:36,860 --> 00:05:39,020
So we can only access array elements
119
119
00:05:39,020 --> 00:05:41,070
using their order number.
120
120
00:05:41,070 --> 00:05:45,070
This means that we should use arrays for more order data,
121
121
00:05:45,070 --> 00:05:48,210
and objects for more unstructured data.
122
122
00:05:48,210 --> 00:05:50,890
And data that we actually want to name,
123
123
00:05:50,890 --> 00:05:52,950
and then retrieve from the object,
124
124
00:05:52,950 --> 00:05:55,240
based on that name.
125
125
00:05:55,240 --> 00:05:57,160
But how do we actually do that?
126
126
00:05:57,160 --> 00:06:00,600
So how do we get data from an object?
127
127
00:06:00,600 --> 00:06:03,900
And that's exactly what the next lecture is about.
128
128
00:06:03,900 --> 00:06:05,993
So, see you there in a second.
10567
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.