So in a world where we are designing an app that needs to go through a list of kitties (hopefully my future career), a typical for loop would look like this:
This works great, but we also have the option of using a nifty method that our array will inherit from Array.prototype called forEach(). We can invoke forEach() to effectively do the same thing that our for loop accomplished, and it will look a little something like this:
I know what you're thinking, "Why would a developer prefer to use one over the other? Are there advantages and disadvantages of each??".
Well boy do I have a treat for you, because there absolutely ARE.
There are some real Joseph Gordon Levitt style Loopers out there that will tell you that for loops are much more efficient than using the forEach method, and they make some good points!
- Break can be used to terminate the loop early.
- Gives more control over the conditions of the loop.
On the other hand, proponents of forEach() will be quick to tell you that the "forEach() method is #1!!" (this happens to me on the street all the time). I understand the passion that forEachers™️ have for their favorite Array method.
- forEach is much more readable. When you factor in the temporary variables that are needed in for loops, it makes for a lot of code to look at! forEach looks cleaner and takes less time to read.
- Less chance for small errors in code since you don't have to specify a condition statement.
While I really don't want to catapult myself into this debate, and I typically avoid talking politics, I have to say that I do have a preference here...
I think that in most circumstances where an array needs to be looped through, the forEach() method is better practice! It looks a lot nicer and makes code more readable and maintainable. One of the only times I would use a for loop is if I knew I needed to break out of the loop early. Otherwise, I go forEach() every time.