Función más eficiente

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos y practicaremos cómo escribir una función eficiente que devuelva el índice de la función que se ejecuta más rápidamente de una matriz de funciones. El laboratorio se centra en utilizar performance.now() y Array.prototype.map() para medir con precisión el tiempo de ejecución de las funciones y compararlas. Al final del laboratorio, tendrás una mejor comprensión de cómo optimizar tu código para obtener el mejor rendimiento.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28502{{"Función más eficiente"}} javascript/data_types -.-> lab-28502{{"Función más eficiente"}} javascript/arith_ops -.-> lab-28502{{"Función más eficiente"}} javascript/comp_ops -.-> lab-28502{{"Función más eficiente"}} javascript/loops -.-> lab-28502{{"Función más eficiente"}} javascript/higher_funcs -.-> lab-28502{{"Función más eficiente"}} javascript/spread_rest -.-> lab-28502{{"Función más eficiente"}} end

Cómo encontrar la función más eficiente en JavaScript

Para encontrar la función más eficiente en JavaScript, sigue estos pasos:

  1. Abre la Terminal/SSH y escribe node para comenzar a practicar la codificación.
  2. Utiliza Array.prototype.map() para generar una matriz donde cada valor sea el tiempo total que tarda en ejecutarse la función después de iteraciones veces.
  3. Utiliza la diferencia de los valores de performance.now() antes y después para obtener el tiempo total en milisegundos con un alto grado de precisión.
  4. Utiliza Math.min() para encontrar el tiempo de ejecución mínimo y devuelve el índice de ese tiempo más corto que corresponde al índice de la función más eficiente.
  5. Si omites el segundo argumento, iteraciones, la función utilizará un valor predeterminado de 10000 iteraciones.
  6. Tien en cuenta que cuanto más iteraciones uses, más fiable será el resultado pero más tiempo tardará.

Aquí hay un fragmento de código de ejemplo:

const mostPerformant = (fns, iterations = 10000) => {
  const times = fns.map((fn) => {
    const before = performance.now();
    for (let i = 0; i < iterations; i++) fn();
    return performance.now() - before;
  });
  return times.indexOf(Math.min(...times));
};

Para utilizar esta función, pasa una matriz de funciones como primer argumento y el número de iteraciones como segundo argumento (opcional). Por ejemplo:

mostPerformant([
  () => {
    // Recorre toda la matriz antes de devolver `false`
    [1, 2, 3, 4, 5, 6, 7, 8, 9, "10"].every((el) => typeof el === "number");
  },
  () => {
    // Solo necesita llegar al índice `1` antes de devolver `false`
    [1, "2", 3, 4, 5, 6, 7, 8, 9, 10].every((el) => typeof el === "number");
  }
]); // 1

Resumen

¡Felicidades! Has completado el laboratorio de la Función más Eficiente. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.