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.