We have come to exercise seven. Now this exercise is a bit more difficult than ones we have done in the past. It will help you review the information we covered for arrays. But it also challenges you in thinking like a programmer. So because this is a bit more difficult than some we've done in the past, I have some additional hints for you. Now once I present the exercise if you'd like to try it without the hints, go ahead and pause the movie at that point before I provide you the hints and see if you're able to be successful.
Then if not, you can come back and get the hints and try it again. Alright, let's take a look at the assignment. So the assignment is pretty simple. It's basically remove all duplicates from this array, and I provided an array for you an array of fruits. Notice there are several duplicates, there's banana twice Key three times an apple twice. Alright, now if you think you can do this without the hands, go ahead and pause it this time and give it a try.
Now here's the hints that I'd like to provide for you. There's multiple ways to solve this problem. One way would be to take the value, assign it to a variable, and then compare that variable to every single element in the array, and then go to the next value and do it again. That would work. However, that might be a bit inefficient. There might be a more efficient way to do that.
And so my hints have to do with making it a little more efficient. The first hint is to sort the array. by sorting the array using the sort method, it will put everything in alphabetical order, that way, all the duplicates will be next to each other. Then you can move through the array, removing duplicates as you move. And you won't have to compare every single element with all of the other elements. Alright, my next hint is that as you're moving through the array and you find duplicates, you're going to remove them with the splice method.
Now, if you're setting up your array with a for loop, which is what you want to do, as you remove elements from the array changes the length of the array so that could affect your loop. So I would suggest that you iterate through the array backwards. So you set up your for loop so you can go through a backwards, then as you remove items is still going in the right direction. You won't get to the end of the array and it will find things that are undefined because you no longer have Anything in that particular index for the array? So that is my next hint. All right, go ahead and pause the movie, give this a try.
Once you have completed it, or you want some further instructions on it, restart the movie. All right, hopefully you were successful with that. So the first thing I'm going to do is I'm going to create a variable, this variable is going to contain the value that I will compare to other values in the array. So I'm going to call it compare Val. Alright, now the first sense I gave you was to sort the array. Now that's pretty simple to do.
Fruits that sort, the sort method. We'll put that array in alphabetical order, now that the array is in alphabetical order, we can move through the array backwards and use a for loop for that, or I equal. Now to move through a backwards we have to set I to the last index of the array. So that would be fruits dot length minus one. Remember it's minus one because the first index is zero, the length is the total number of items, yet the index is zero based. And so Apple, or the last item in the array will be length minus one.
Now we want to run the loop while i is greater than or equal to zero. Once it's less than zero, we're outside of the the index and finally, we want to decrement by Alright, there's our loop. Now let's compare whether items are equal to one another so that we can remove them. So that we'll use an IF conditional. So if, wait, wait. first before we compare, we need to assign a value to our compare Val variable.
So compare Val is equal to fruits. Hi. So we'll just move methodically through that array. Each time we iterate through the array compare Val becomes a new value, a new element in the array. Now let's do the comparison. We're going to compare what's in compare Val to the item in the array that's right before it.
So that will be an IF conditional if compare Val strict equality. So if compare Val is equal to fruits, i minus one. So that will be the item that's right before, compare Val. And if that ends up being equal, then we want to remove and so we use this splice method to do that. So fruits dot splice i. So remove the is that compare Val and we'll remove one item.
Then once the loop is completely done, we can log out the results console dot log Use a two string method to turn it into a string so we can concatenate that to new array, colon. All right, let's save this. Take a look at our results. Pull up that page and open the console. And it looks like it eliminated all of the duplicate items based upon what's displayed here. Now, one more comment about this exercise.
This one was a bit difficult. So when you run into a difficult problem like this, how can you help yourself through it? Well, I think one thing that helps quite a bit is you log out progress. So for example, if you started by logging out fruits after you had sorted it now I jump back and I take a look at that log, I get a picture of what the loop is going to look like. So now I can I can envision this and say okay, so I the first time through is going to be equal to pair, it will compare it to that, that are not equal to so it'll it'll iterate again then is equal this. So compare it to that or not equals or iterate again, I will be this it will compare it to this they are equal, it will remove this goes iterates through the loop again, i minus one, it becomes this one.
And then it compares that one, it removes that one minus one again, it comes to here, and so on. And so by by using console dot log, it can give me an idea what is happening and if I wanted to I could use a console dot log statement here to see what it found that was equal to one another. And maybe I want to use console dot log after I splice it to see what the resulting array looks like. So that can help you through a problem if you're having difficulties with a problem. Now, hopefully you're able to solve this if you weren't, hopefully you, you are able to understand what we did now that we've gone through it. And that's really the key.
Because once you understand those concepts, you'll be able to apply them next time you run into another problem. All right, let's move on to the next section.