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

Useful Information | General Process for Online Event Operation and Promotion

There is no clear definition of operation and spe...

Modern front-end development technology stack

This article will introduce the revolutionary dev...

Ultraviolet disinfection lamps are not that magical

The ultraviolet disinfection lamp should be place...

Easily master the basic programming algorithms (I)

[[121968]] I haven't updated my blog for a lo...

7 major channels for promoting Douyin and increasing followers!

If it is an enterprise account, it is recommended...

iPhone 6 disassembly: No revolutionary changes, but easier to repair

On the evening of October 2nd, Beijing time, Bill...