2-Minute Coding Tip: Don't Use Loops in Your Code

2-Minute Coding Tip: Don't Use Loops in Your Code

Instead of writing for or while loops, you should use functions like map, filter, and reduce. This is recommended because:

Loops make it easy to create side effects in your code, which can turn your code into a mess of spaghetti.

When you try to do more than one thing at a time, loops can cause you pain.

Functional programming prevents your code from having as many side effects as cold medicine. It forces you to do one thing at a time and is more readable than loops.

Loops, like pointers, are a simple programming technique. They are very useful for certain critical code, but I would say that few of us are working on graphics card drivers.

Let's cut to the chase - here's a comparison of JavaScript programs. First, the old-school loop version:

  1. const cats = [ 'Antonio' ​​, 'Squid' , 'Tornado' , 'Avocado' , 'Barnacles' , 'Abroteus' ];  
  2. const stringStartsWithA = x => x[0].toLowerCase() === 'a' ;  
  3. const catsWhoseNameStartsWithA = [];  
  4. for (let i = 0; i < cats.length; i++) {
  5. if (stringStartsWithA(cats[i])) {
  6. catsWhoseNameStartsWithA.push(cats[i]);
  7. }
  8. }  
  9. console.log(catsWhoseNameStartsWithA);  
  10. // Output :
  11. // [ "Antonio" , "Avocado" , "Abroteus" ]

This is the new functional programming:

  1. const cats = [ 'Antonio' ​​, 'Squid' , 'Tornado' , 'Avocado' , 'Barnacles' , 'Abroteus' ];  
  2. const stringStartsWithA = x => x[0].toLowerCase() === 'a' ;  
  3. const catsWhoseNameStartsWithA = cats.filter(stringStartsWithA);  
  4. console.log(catsWhoseNameStartsWithA);  
  5. // Output :
  6. // [ "Antonio" , "Avocado" , "Abroteus" ]

Granted, this is a simple example, and is likely a perfect use case for a filter. Still, we’ve turned 5 messy lines of code into… 0 lines? In the first example, we’ve used one line of code to declare the array.

The fun doesn’t end here: we used filter as an example, but there are many more usages like map, reduce, sort and flatten. They give us a huge space to write creative, elegant and most importantly, easy to understand code!

What do you think? Maybe my examples are biased, or maybe I'm just plain wrong. Let me know in the comments - I appreciate any and all feedback!

<<:  Pitfalls you may encounter when using Android notifications

>>:  A collision of ideas caused by code review

Recommend

Tik Tok operation planning program for real estate industry!

1. Industry Background As we all know, in the tra...

With a limited budget, how can we make the product spread itself?

Here's a question for you: what's your un...

Where to start operating a UGC platform? Here are 3 points for you

UGC , or User-Generated Content, refers to conten...

Introduction to frequently used iOS third-party libraries and XCode plug-ins

Third-party libraries are something that programm...

Have you ever taken one of these high-tech buses?

The environment in big cities is getting worse an...

Are vertical lines and white spots on the nails a “signal of death”?

Are vertical lines and white spots on the nails a...

Behind the debut of Dinosaur Star, there are 19 fractures

In the Late Jurassic, an Allosaurus limped toward...