Learn how to remove loops and use higher-order functions like map, reduce, and filter
Using higher-order functions will make your code :
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);
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
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);
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.
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