Explorando los fundamentos de JavaScript a través de ejercicios

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 los fundamentos de la programación en JavaScript. A través de una serie de ejercicios y retos, cubriremos temas como variables, tipos de datos, funciones, flujo de control y más. Al final de este laboratorio, tendrás una sólida comprensión de la sintaxis de JavaScript y serás capaz de escribir programas básicos en este versátil lenguaje de programación.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced 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/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28566{{"Explorando los fundamentos de JavaScript a través de ejercicios"}} javascript/data_types -.-> lab-28566{{"Explorando los fundamentos de JavaScript a través de ejercicios"}} javascript/arith_ops -.-> lab-28566{{"Explorando los fundamentos de JavaScript a través de ejercicios"}} javascript/comp_ops -.-> lab-28566{{"Explorando los fundamentos de JavaScript a través de ejercicios"}} javascript/cond_stmts -.-> lab-28566{{"Explorando los fundamentos de JavaScript a través de ejercicios"}} javascript/array_methods -.-> lab-28566{{"Explorando los fundamentos de JavaScript a través de ejercicios"}} javascript/higher_funcs -.-> lab-28566{{"Explorando los fundamentos de JavaScript a través de ejercicios"}} javascript/spread_rest -.-> lab-28566{{"Explorando los fundamentos de JavaScript a través de ejercicios"}} end

Algoritmo de Ordenamiento Rápido

Para practicar la codificación, abre la Terminal/SSH y escribe node. Este algoritmo ordena una matriz de números utilizando el algoritmo de ordenamiento rápido. Estos son los pasos a seguir:

  • Utiliza la recursividad.
  • Utiliza el operador de propagación (...) para clonar la matriz original, arr.
  • Si la longitud de la matriz es menor que 2, devuelve la matriz clonada.
  • Utiliza Math.floor() para calcular el índice del elemento pivote.
  • Utiliza Array.prototype.reduce() y Array.prototype.push() para dividir la matriz en dos submatrices. La primera contiene elementos menores o iguales a pivote, y la segunda contiene elementos mayores que él. Desestructura el resultado en dos matrices.
  • Llama recursivamente a quickSort() en las submatrices creadas.

Este es un ejemplo de cómo implementar este algoritmo:

const quickSort = (arr) => {
  const a = [...arr];
  if (a.length < 2) return a;
  const pivotIndex = Math.floor(arr.length / 2);
  const pivot = a[pivotIndex];
  const [lo, hi] = a.reduce(
    (acc, val, i) => {
      if (val < pivot || (val === pivot && i != pivotIndex)) {
        acc[0].push(val);
      } else if (val > pivot) {
        acc[1].push(val);
      }
      return acc;
    },
    [[], []]
  );
  return [...quickSort(lo), pivot, ...quickSort(hi)];
};

Para probarlo, ejecuta el siguiente comando:

quickSort([1, 6, 1, 5, 3, 2, 1, 4]); // [1, 1, 1, 2, 3, 4, 5, 6]

Resumen

¡Felicidades! Has completado el laboratorio de Ordenamiento Rápido. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.