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

World Book Day丨You look so beautiful when you read!

Reading enriches our souls. Let us have more cour...

How dangerous are “killer bees”? Can they be killed?

When it comes to killer bees, what's the firs...

What are the ways to make money with APP?

App developers often ask themselves a question: h...

B Station Brand Promotion Guide

Are you thinking about where the future increment...

Huizhou WeChat applet development process, how to develop WeChat applet?

WeChat Mini Programs are favored by many companie...

Case Review | How to create a screen-sweeping event with 0 cost?

The case reviewed in this article is an activity ...

Product operation: scenario-based operation plan for community group purchasing!

The generally mentioned scenario is directly base...

How to master event operations? 4 cases to decipher for you!

How do operations experts manage operations? Belo...

Bacteria are so "fertile", will the earth be occupied by them one day?

Produced by: Science Popularization China Author:...

How much does it cost to customize an office supplies mini program in Suining?

There is no fixed price for the customization of ...