En este ejemplo, aprenderemos cómo obtener el índice de la función en una array de funciones que se ejecuta más rápido en JavaScript.
Ejemplo:
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
Enfoque: Se deben seguir los siguientes pasos para resolver el problema:
- Primero iteraremos sobre la array dada.
- Encontraremos el tiempo que tarda cada función y lo almacenaremos en una array diferente con el mismo valor de índice que el índice de la función. El tiempo empleado se puede encontrar obteniendo la diferencia de tiempo usando el método performance.now() .
- Finalmente, imprimimos el índice mínimo obteniendo el valor mínimo de la array usando el método Math.min() .
Los siguientes ejemplos demuestran este enfoque.
Ejemplo 1:
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>
Producción:
The hello function takes 5.8547000009566545 The hello1 function takes 0.2459999993443489 The hello2 function takes 0.19830000028014183 Index of fastest function 2
Ejemplo 2:
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 = 1; 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>
Producción:
Factorial of 4 is: 6 7.554999999701977 6th fibonacci no is: 8 0.22690000012516975 Power 2 to 22 mod 1e9+7 is: 221047735 0.25120000168681145 Index of fastest function: 1
Publicación traducida automáticamente
Artículo escrito por satyam00so y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA