Why you don't need Loops in JavaScript?

Learn how to remove loops and use higher-order functions like map, reduce, and filter

Why Are We Replacing Loops?

Using higher-order functions will make your code :

  • More readable.
  • Easy to understand.
  • Easy to debug.

1. To Loop Through All Elements and Perform an Action

Using loop:

function print(name) {
   console.log(name);
}var names = ["Jack", "Jecci", "Ram", "Tom"];for(let i=0, totalNames = names.length; i< totalNames ; i= i +1) {
    print(names[i])
}

Without loop:

var names = ["Jack", "Jecci", "Ram", "Tom"];

names.map(name => print(name));

// we can shrink the above code as

names.map(print);

2. Filtering Array

Using normal for loop:

function isOdd(n) {
   return n %2;
}var numbers = [1,2,3,4,5];var odd = [];for(let i=0, total = numbers.length; i< total ; i= i +1) {   let number = numbers[i];
   if( isOdd(number) ) {
      odd.push(number);
   }}

Using filter:

var numbers = [1,2,3,4,5, 6, 7]

var odd = numbers.filter(n => n%2); // single line

3. Creating an Output With Array Elements

Sum of numbers:

var numbers = [1,2,3,4,5]
var result = 0;
for(let i=0, total = numbers.length; i< total ; i= i +1) {   
            result = result + numbers[i];
}

Using reduce:

var numbers = [1,2,3,4,5,6,7];function sum(accumulator, currentValue){
   return accumulator + currentValue;
}var initialVal = 0;
var result = numbers.reduce(sum, initialVal);

The above code can be even more simplified:

var numbers = [1,2,3,4,5,6,7, 10];
var result = numbers.reduce((acc, val)=> acc+val, 0);

4. Checking if an Array Contains a Value

var names = ["ram", "raj", "rahul"];for(let i=0, totalNames = names.length; i< totalNames ; i= i +1) {
   if(names[i] === "rahul") {
     console.log("%c found rahul", "color:red");
     return; 
   }
}

Using some:

var names = ["ram", "raj", "rahul"];
let isRahulPresent = names.some(name => name==="rahul");
if(isRahulPresent) {
  console.log("%c found rahul", "color:red"); 
}

%c in the console statement will apply style to the console text.

5. To Check Whether Every Element in an Array Meets a Condition

Using for loop:

var num = [1,2,3,4,5, 0];for(let i=0, total = numbers.length; i< total ; i= i +1) {    
			if(num <= 0) {      
			break;
      console.log("0 present in array");
    }
}

Using every:

var num = [1,2,3,4,5, 0];

var isZeroFree = num.every(e => e > 0);

if(!isZeroFree) {
    console.log("0 present in array");
}

Thanks for reading. I hope you like this.

#JavaScript #Angular #React #WebDev

Why you don't need Loops in JavaScript?
20.10 GEEK