In this example, we will learn how to get the index of the function in an array of functions that is executed the fastest in JavaScript.
Example:
Input: fun[] = [ hello, hello1, hello2 ] Output: index of fastest is 0. Explanation: Function hello execute fastest in all functions. Input: fun[] = [ while1, while2, while3 ] Output: index of fastest function is 2
Approach: The below steps have to be followed to solve the problem:
- We will first Iterate over the given array.
- We will find the time taken by each function and store it in a different array with the same index value as the function index. The time taken can be found by getting the difference in time using the performance.now() method.
- Finally, we print the minimum index by getting the minimum value of the array using the Math.min() method.
Example 1: In this example, we will calculate the time taken by each function to execute. We will then print the index of the fastest function. using the above-mentioned approach
Javascript
<script>     // 1st function     function hello() {       var s = "";       var ans = ["The", " hello function ", "takes "];       for (var i = 0; i < 3; i++) s += ans[i];       console.log(s);     }           // 2nd function     function hello1() {       var s = "";       var ans = ["The hello1 function", " takes "];       for (var i = 0; i < 2; i++) s += ans[i];       console.log(s);     }           // 3rd function     function hello2() {       var ans = "The hello2 function takes ";       for (var i = 0; i < 1; i++) console.log(ans);     }           // Function to check time required by each function     function findTime(f) {             // Storing initial time in start       var start = performance.now();             // Calling the function       f();             // Storing time after running the function       var end = performance.now();             // Return time taken by function       return end - start;     }           function findMinTime() {             // Initializing array of functions       var fun = [hello, hello1, hello2];             // Initialising array of time taken by function       var ans = [];             // Iterating over all the functions and       // storing time taken by them       for (var i = 0; i < 3; i++) {         var n = findTime(fun[i]);         ans[i] = n;         console.log(ans[i]);       }             // Finding the minimum time in array       var answer = Math.min.apply(null, ans);       c = ans.indexOf(answer);             // Return index of fastest array       return c;     }           var minTime = findMinTime();     console.log("Index of fastest function:", minTime); </script> |
Output:
"The hello function takes " 0.10000000009313226 "The hello1 function takes " 0 "The hello2 function takes " 0 "Index of fastest function:" 1
Example 2: In this example, we will calculate the time taken by functions to perform some mathematical operations. We will then print the index of the fastest function.
Javascript
<script>     // 1st function     function fac(n) {         let fact = 1;         for (let i = 1; i <= 4; i++)         fact *= i;         console.log("Factorial of 4 is:", fact);     }           // 2nd function     function fibo() {         let fab = 0;         let j = 1;         for (let i = 2; i <= 6; i++) {         let temp = fab;         fab += j;         j = temp;         }         console.log("6th fibonacci no is:", fab);     }           // 3rd function     function binpow() {         let j = 2;         let k = 22;         for (let i = 0; i < k; i++)         j = ((j * j) % 1e9) + 7;         console.log(         "Power 2 to 22 mod 1e9+7 is:", j         );     }           // Function to check time required     // by each function     function findTime(f) {               // Storing initial time in start         var start = performance.now();               // Calling the function         f();               // Storing time after running the function         var end = performance.now();               // Return time taken by function         return end - start;     }           function findMinTime() {               // Initializing array of functions         var fun = [fac, fibo, binpow];               // Initialising array of time         // taken by function         var ans = [];               // Iterating over all the functions         // and storing time taken by them         for (var i = 0; i < 3; i++) {         var n = findTime(fun[i]);         ans[i] = n;         console.log(ans[i]);         }               // Finding the minimum time in array         var answer = Math.min.apply(null, ans);         c = ans.indexOf(answer);               // Return index of fastest array         return c;     }           var minTime = findMinTime();     console.log("Index of fastest function:",                 minTime); </script> |
Output:
Factorial of 4 is: 24 0.30000001192092896 6th fibonacci no is: 5 0.20000001788139343 Power 2 to 22 mod 1e9+7 is: 221047735 0.30000001192092896 Index of fastest function: 1
