Working with Sparse Arrays

Modern JavaScript Working with Arrays
7 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€96.21
List Price:  €134.70
You save:  €38.49
£79.93
List Price:  £111.90
You save:  £31.97
CA$143.79
List Price:  CA$201.32
You save:  CA$57.52
A$160.48
List Price:  A$224.69
You save:  A$64.20
S$135.83
List Price:  S$190.17
You save:  S$54.33
HK$777.07
List Price:  HK$1,087.93
You save:  HK$310.86
CHF 89.45
List Price:  CHF 125.24
You save:  CHF 35.78
NOK kr1,141.95
List Price:  NOK kr1,598.78
You save:  NOK kr456.82
DKK kr717.64
List Price:  DKK kr1,004.72
You save:  DKK kr287.08
NZ$177.52
List Price:  NZ$248.53
You save:  NZ$71.01
د.إ367.25
List Price:  د.إ514.17
You save:  د.إ146.91
৳11,994.74
List Price:  ৳16,793.12
You save:  ৳4,798.37
₹8,496.63
List Price:  ₹11,895.62
You save:  ₹3,398.99
RM450.75
List Price:  RM631.07
You save:  RM180.32
₦155,628.43
List Price:  ₦217,886.03
You save:  ₦62,257.60
₨27,934.96
List Price:  ₨39,110.06
You save:  ₨11,175.10
฿3,444.45
List Price:  ฿4,822.37
You save:  ฿1,377.92
₺3,518.54
List Price:  ₺4,926.10
You save:  ₺1,407.55
B$617.53
List Price:  B$864.57
You save:  B$247.04
R1,837.80
List Price:  R2,572.99
You save:  R735.19
Лв188.31
List Price:  Лв263.64
You save:  Лв75.33
₩144,872.25
List Price:  ₩202,826.95
You save:  ₩57,954.69
₪364.89
List Price:  ₪510.86
You save:  ₪145.97
₱5,883.01
List Price:  ₱8,236.45
You save:  ₱2,353.44
¥15,672.80
List Price:  ¥21,942.55
You save:  ¥6,269.75
MX$2,028.91
List Price:  MX$2,840.56
You save:  MX$811.64
QR366.34
List Price:  QR512.89
You save:  QR146.55
P1,382.59
List Price:  P1,935.69
You save:  P553.09
KSh12,923.70
List Price:  KSh18,093.70
You save:  KSh5,170
E£5,091.27
List Price:  E£7,127.98
You save:  E£2,036.71
ብር12,764.56
List Price:  ብር17,870.89
You save:  ብር5,106.33
Kz91,790.82
List Price:  Kz128,510.82
You save:  Kz36,720
CLP$99,155.08
List Price:  CLP$138,821.08
You save:  CLP$39,666
CN¥729.81
List Price:  CN¥1,021.77
You save:  CN¥291.95
RD$6,104.52
List Price:  RD$8,546.58
You save:  RD$2,442.05
DA13,454.60
List Price:  DA18,836.98
You save:  DA5,382.37
FJ$232.11
List Price:  FJ$324.96
You save:  FJ$92.85
Q773.21
List Price:  Q1,082.52
You save:  Q309.31
GY$21,000.46
List Price:  GY$29,401.48
You save:  GY$8,401.02
ISK kr13,903.60
List Price:  ISK kr19,465.60
You save:  ISK kr5,562
DH1,007.40
List Price:  DH1,410.40
You save:  DH403
L1,841.78
List Price:  L2,578.57
You save:  L736.78
ден5,922.50
List Price:  ден8,291.74
You save:  ден2,369.23
MOP$803.42
List Price:  MOP$1,124.82
You save:  MOP$321.40
N$1,834.70
List Price:  N$2,568.66
You save:  N$733.95
C$3,694.32
List Price:  C$5,172.20
You save:  C$1,477.87
रु13,665.58
List Price:  रु19,132.35
You save:  रु5,466.77
S/374.71
List Price:  S/524.60
You save:  S/149.89
K406.86
List Price:  K569.63
You save:  K162.76
SAR375.72
List Price:  SAR526.02
You save:  SAR150.30
ZK2,777.96
List Price:  ZK3,889.25
You save:  ZK1,111.29
L478.81
List Price:  L670.35
You save:  L191.54
Kč2,418.25
List Price:  Kč3,385.65
You save:  Kč967.40
Ft39,800.47
List Price:  Ft55,722.25
You save:  Ft15,921.78
SEK kr1,103.66
List Price:  SEK kr1,545.17
You save:  SEK kr441.50
ARS$102,190.76
List Price:  ARS$143,071.15
You save:  ARS$40,880.39
Bs693.61
List Price:  Bs971.08
You save:  Bs277.47
COP$437,799.12
List Price:  COP$612,936.28
You save:  COP$175,137.16
₡50,480.33
List Price:  ₡70,674.48
You save:  ₡20,194.15
L2,548.03
List Price:  L3,567.35
You save:  L1,019.31
₲784,126.06
List Price:  ₲1,097,807.85
You save:  ₲313,681.79
$U4,460.41
List Price:  $U6,244.75
You save:  $U1,784.34
zł409.96
List Price:  zł573.96
You save:  zł164
Already have an account? Log In

Transcript

Let's talk for just a moment about sparse arrays. Now a sparse array is when one of the elements in the array is undefined. The value is simply not there for that element. Now, how can that happen? Well, it can happen in a couple of ways. One is when the array is created is may simply be that that element was left out.

But it also could be that the element was removed using the Delete keyword. Either those scenarios could result in a sparse array. Now when you're looping through the elements of a sparse array, it can cause issues. Because one of those elements is undefined, the value is missing. So let's take a look and see what happens. I'm gonna jump to sublime.

Now here is the exercise we've used previously. However, notice right here, there is no element. There's a comma there indicating that we have an element this, this will create a sparse array. So it will have 1-234-567-8910 11 elements, but one of those will be undefined one will be missing. Now let's see what happens. So let me copy the file path, jump out.

And let's open the console. We get a message the average grade is any I know we talked briefly earlier about na n. That is basically indicates that it is not a number. That's what na n tells us. And that happens when we're dealing with events. You trying to do an operation that requires a number. And the value is not a number such as undefined.

So let's look at how we would deal with this. Now this is an important skill to have as a developer, because you don't always know what your date is going to be like, there could be something wrong with it. And so it's valuable to include checks to make sure that you're dealing correctly with unforeseen circumstances, such as a sparse array. So to crack this, we need to make sure that undefined is not included. So that seems to suggest that we need an IF conditional. So let's go ahead and enter if and then we're going to refer to the grades array and if the element we're looking at If that is equal to undefined, then we're going to do something.

And what is it that we're going to do? Well, I want to introduce to you the continuing keyword. That's what we're going to do is continue, continue tells the loop to jump to the next iteration of the loop without executing any statements below it. So when continue is encountered, it will go to the top of the loop again, without executing this line. So basically, it won't try to add an undefined value to the total. And that's what's causing us to get that na n. So that will skip the undefined value.

Let's save that. Refresh and see what we get. Now we get an average. Great now let me jump back To sublime want to just show you a couple more things we're not quite done with this. But before we continue on, I want to show you what's possible when you have an IF conditional with a single statement and remove the curly braces. And then I'll move that continuous statement up to the same line as the F conditional.

This is a valid statement. The reason this is valid is because we only have one statement inside the F conditional, so the curly braces are not required. You may run into this and so that's why I'm showing it to you. However, I would recommend that when you're doing it, you always include the curly braces. And why. Why is that important?

Well, if you ever need to come in and make changes to that if statement, and you add a second line and there's not curly braces there, it will only execute one line as a part of the F conditional The other line will not be a part of the if conditional. The other reason is I think it reads better, allows you to quickly see what is part of that if conditional, so I would recommend using curly braces. Now our continue solve the problem of getting the n a n, because it prevented this line from executing. When ever there was an undefined value. However, the one thing we're not accounting for yet is that when we determine the average, we are dividing by the entire length of the array, and the entire length of the array includes an undefined value. Now, depending on what our purposes that may be what we want, we may consider that undefined value as no score yet, but in this case, I want To make a change, so the average is more accurate.

So the way we can do that is simply declare another variable. And we're going to set that equal to grades dot length. Then if the value is undefined, we simply decrement that variable. Now before we check whether this is working, we need to come down here and make a change so that it is dividing by that variable. Let's go ahead and save it. Refresh.

Open the console. And now our average is different. It's a little bit higher because we accounted for the undefined value So that's continue. And that's how we can deal with sparse arrays. Let's continue to the next topic.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.