How to get the index of the function in an array of functions which executed the fastest in JavaScript ?

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
Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, zambiatek Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!



