1
00:00:01,238 --> 00:00:04,395
You already learned about using variables
to store numbers or strings.
2
00:00:04,395 --> 00:00:06,245
Now we're going to learn
about something called arrays,
3
00:00:06,245 --> 00:00:09,675
which let us store multiple items
in just one variable.
4
00:00:09,675 --> 00:00:12,980
As you'll see, arrays let us do
all kinds of useful things.
5
00:00:12,980 --> 00:00:14,622
Okay, let's review variables. All right?
6
00:00:14,622 --> 00:00:18,531
So we have, var myFriend = "Sophia".
7
00:00:19,761 --> 00:00:22,640
So, a variable is just a way
of storing a value, like Sofia,
8
00:00:22,640 --> 00:00:26,600
and giving it a label so our program
has an easy way to refer to it later.
9
00:00:26,600 --> 00:00:28,109
We can think of it like a drawer,
10
00:00:28,109 --> 00:00:32,389
with a myFriend label on the outside
and Sofia on the inside.
11
00:00:32,389 --> 00:00:35,118
So whenever we look inside it,
we find Sofia.
12
00:00:36,198 --> 00:00:39,946
Now, sometimes we want to hold
multiple values in a single variable
13
00:00:39,946 --> 00:00:44,191
and we can't just do it like this
because we'll get a syntax error
14
00:00:44,191 --> 00:00:46,271
and our program will freak out,
and all that stuff.
15
00:00:46,271 --> 00:00:48,582
So we have a specific way
that we do that,
16
00:00:48,582 --> 00:00:50,572
and that's using arrays.
17
00:00:50,572 --> 00:00:53,189
So we could say, myFriends = ,
18
00:00:53,189 --> 00:00:55,729
and then we have to do
a square bracket,
19
00:00:55,729 --> 00:00:58,599
and then inside,
that's where we can put all the values.
20
00:00:58,599 --> 00:01:03,716
So we say, Sofia,
and we have John, and we have Leif.
21
00:01:03,716 --> 00:01:06,338
All right, so those are my three friends.
22
00:01:06,338 --> 00:01:09,384
Maybe in order of how much I like them,
but don't tell them that.
23
00:01:09,384 --> 00:01:12,984
Okay, so now our variable
holds three values, not just one.
24
00:01:12,984 --> 00:01:15,191
And we can imagine
it's like a chest of drawers,
25
00:01:15,191 --> 00:01:18,191
and we put this label, myFriends,
on the whole chest.
26
00:01:18,191 --> 00:01:20,369
And we can just open the right drawer
27
00:01:20,369 --> 00:01:22,669
to find the value
we're looking for, right?
28
00:01:23,689 --> 00:01:24,875
And you imagine, with a chest of drawers,
29
00:01:24,875 --> 00:01:27,745
if you want to know
what's inside the first drawer,
30
00:01:27,745 --> 00:01:29,775
you would just open it up and look inside.
31
00:01:29,775 --> 00:01:31,950
So how do we do that with our array?
32
00:01:31,950 --> 00:01:34,372
Well, we can just type
the name of the array,
33
00:01:34,372 --> 00:01:36,102
and then the brackets again--
34
00:01:36,102 --> 00:01:37,542
ooh, I misspelled it--
35
00:01:39,432 --> 00:01:42,652
and then the number
of whatever it is in the array, right?
36
00:01:42,652 --> 00:01:45,459
So maybe it would be 1. Okay?
37
00:01:45,459 --> 00:01:46,669
So, let's actually try this out
38
00:01:46,669 --> 00:01:50,869
by using the text command
and showing Sofia on the canvas.
39
00:01:50,869 --> 00:01:55,125
So we say, myFriends--
ooh, friend is a hard word to spell, huh?
40
00:01:55,125 --> 00:01:59,565
So, myFriends[1],
and then we put it here.
41
00:01:59,565 --> 00:02:01,875
Oh, and then let's put a little fill.
42
00:02:01,875 --> 00:02:06,266
Oh, okay, so we see John.
Why do we see John?
43
00:02:06,266 --> 00:02:09,367
We said 1 for the element index, right?
44
00:02:09,367 --> 00:02:11,177
The 1 right here.
45
00:02:11,177 --> 00:02:15,513
Well, that's because
arrays start at 0, not 1,
46
00:02:15,513 --> 00:02:19,833
and it'll definitely seem weird at first,
but you'll get used to it.
47
00:02:19,833 --> 00:02:24,075
So if we put 0,
then we see Sofia, all right?
48
00:02:24,075 --> 00:02:26,125
And then, if we want to show
the next element,
49
00:02:26,125 --> 00:02:27,754
then we use 1, all right?
50
00:02:27,754 --> 00:02:30,156
So, and then if we want to do
the final element,
51
00:02:30,156 --> 00:02:32,466
the third element, then we use 2.
52
00:02:33,046 --> 00:02:36,616
So you just think to yourself:
"Okay, which one do I want to retrieve?"--
53
00:02:36,616 --> 00:02:38,267
Oh, let's spread these out--
54
00:02:38,267 --> 00:02:41,298
and where is it located,
and you just subtract one.
55
00:02:41,298 --> 00:02:43,742
So the first one is 0,
the second one is 1,
56
00:02:43,742 --> 00:02:46,902
the third one is 2, et cetera, et cetera.
57
00:02:46,902 --> 00:02:51,927
What happens if I forgot,
and I try to access Leif this way?
58
00:02:51,927 --> 00:02:55,920
Well then, we say myFriends[3],
and we'll just get nothing.
59
00:02:55,920 --> 00:02:58,490
That's because there's nothing there, right?
60
00:02:58,490 --> 00:03:02,149
When it says 3,
it looks for the fourth element,
61
00:03:02,149 --> 00:03:05,432
and there's no fourth element,
so there's just nothing.
62
00:03:05,432 --> 00:03:07,647
And that's something that can happen a lot
when you're using arrays,
63
00:03:07,647 --> 00:03:09,697
so just look out for that.
64
00:03:09,697 --> 00:03:12,035
And the same thing
if I tried to access a hundred
65
00:03:12,035 --> 00:03:15,426
because I don't have a hundred friends,
I only have three,
66
00:03:15,426 --> 00:03:19,132
so then we get nothing, all right?
So let's get rid of those.
67
00:03:19,132 --> 00:03:21,771
Now, let's say we want to keep track
of how many friends we have
68
00:03:21,771 --> 00:03:23,981
because I'm really proud,
and I have three friends,
69
00:03:23,981 --> 00:03:25,721
and I want to let everybody know.
70
00:03:25,721 --> 00:03:28,693
So I'm going to go
and declare this to the world.
71
00:03:28,693 --> 00:03:32,508
So, "I have " + numFriends + " friends!!!".
72
00:03:32,898 --> 00:03:34,398
Woo, all right.
73
00:03:36,668 --> 00:03:40,348
Okay, so I have three friends. Yay!
Oh, that's not very many.
74
00:03:40,348 --> 00:03:43,989
Okay, so maybe Winston feels bad for me
and says he'll be my friend,
75
00:03:43,989 --> 00:03:45,679
and he says I can add him to the array.
76
00:03:45,679 --> 00:03:47,375
And I was like:
"Okay, cool. Thanks, Winston."
77
00:03:47,375 --> 00:03:48,835
So I add Winston.
78
00:03:48,835 --> 00:03:50,958
Oh, but it still says
I have three friends, right,
79
00:03:50,958 --> 00:03:53,929
because I have to go
and update this variable here.
80
00:03:53,929 --> 00:03:56,736
That means, every time
that I add something to this array,
81
00:03:56,736 --> 00:03:59,796
I have to update this variable,
and that could get really annoying,
82
00:03:59,796 --> 00:04:01,436
especially if all of you guys
watching this
83
00:04:01,436 --> 00:04:03,430
decide you'll be my friend.
84
00:04:03,430 --> 00:04:05,330
And then, you know,
I'm updating this thousands of times
85
00:04:05,330 --> 00:04:07,640
and having to update this every time.
86
00:04:07,640 --> 00:04:09,105
So here's the thing:
87
00:04:09,105 --> 00:04:13,675
We, so often, want to know
how long our array is,
88
00:04:13,675 --> 00:04:15,755
that there's a special way to do that.
89
00:04:15,755 --> 00:04:18,140
So the array will keep track
of how long it is
90
00:04:18,140 --> 00:04:20,090
using a property called length.
91
00:04:20,090 --> 00:04:25,365
And to use it, we just say,
myFriends.length,
92
00:04:25,365 --> 00:04:26,755
and then we'll get back the length.
93
00:04:26,755 --> 00:04:29,115
See, now it says 4,
and I can delete this variable.
94
00:04:29,115 --> 00:04:30,528
I don't need it any more.
95
00:04:30,528 --> 00:04:33,024
And this property will update
whenever we add.
96
00:04:33,024 --> 00:04:35,258
So maybe OhNoes Guy!!
says he'll be my friend, and I'm like:
97
00:04:35,258 --> 00:04:39,468
"Okay, you're kind of mean,
but okay, you'll be my friend."
98
00:04:40,168 --> 00:04:42,817
And we can keep adding
and it'll keep updating.
99
00:04:42,817 --> 00:04:46,600
So, that's really cool because, you know,
100
00:04:46,600 --> 00:04:49,600
it's a lot less work to keep track
of how long our array is.
101
00:04:49,600 --> 00:04:50,861
All right, so pretty much,
102
00:04:50,861 --> 00:04:53,541
whenever you want to store
a list of values like this,
103
00:04:53,541 --> 00:04:54,921
we'll use an array.
104
00:04:55,571 --> 00:04:57,499
So keep watching to find out
all the really cool things
105
00:04:57,499 --> 00:04:59,088
that we can use them for.