Ejercicios de programación fundamental en JavaScript

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 la programación de JavaScript al completar una serie de ejercicios diseñados para ayudar a desarrollar habilidades fundamentales. Desde la sintaxis básica y los tipos de datos hasta conceptos más avanzados como la programación asincrónica y la programación funcional, este laboratorio proporcionará experiencia práctica que te ayudará a convertirse en un desarrollador de JavaScript habilidoso. Ya sea que seas nuevo en la programación o estés buscando ampliar tus habilidades, este laboratorio te dará las herramientas que necesitas para tener éxito.


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/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28492{{"Ejercicios de programación fundamental en JavaScript"}} javascript/data_types -.-> lab-28492{{"Ejercicios de programación fundamental en JavaScript"}} javascript/arith_ops -.-> lab-28492{{"Ejercicios de programación fundamental en JavaScript"}} javascript/comp_ops -.-> lab-28492{{"Ejercicios de programación fundamental en JavaScript"}} javascript/cond_stmts -.-> lab-28492{{"Ejercicios de programación fundamental en JavaScript"}} javascript/spread_rest -.-> lab-28492{{"Ejercicios de programación fundamental en JavaScript"}} end

Algoritmo del subarreglo máximo

Para practicar la codificación, abre la Terminal/SSH y escribe node. Este algoritmo encuentra un subarreglo contiguo con la suma más grande dentro de un arreglo de números. Para implementar este algoritmo, sigue estos pasos:

  • Utiliza un enfoque voraz para llevar un registro de la suma actual y el máximo actual, maxSum. Establece maxSum en -Infinity para asegurar que se retorne el valor negativo más alto, si todos los valores son negativos.
  • Define variables para llevar un registro del índice de inicio máximo, sMax, índice de fin máximo, eMax e índice de inicio actual, s.
  • Utiliza Array.prototype.forEach() para iterar sobre los valores y agrega el valor actual a la sum.
  • Si la sum actual es mayor que maxSum, actualiza los valores de los índices y la maxSum.
  • Si la sum es menor que 0, reiníciala en 0 y actualiza el valor de s al siguiente índice.
  • Utiliza Array.prototype.slice() para retornar el subarreglo indicado por las variables de índice.

Aquí está el código JavaScript del algoritmo:

const maxSubarray = (...arr) => {
  let maxSum = -Infinity,
    sum = 0;
  let sMax = 0,
    eMax = arr.length - 1,
    s = 0;

  arr.forEach((n, i) => {
    sum += n;
    if (maxSum < sum) {
      maxSum = sum;
      sMax = s;
      eMax = i;
    }

    if (sum < 0) {
      sum = 0;
      s = i + 1;
    }
  });

  return arr.slice(sMax, eMax + 1);
};

Aquí está un ejemplo de cómo utilizar la función:

maxSubarray(-2, 1, -3, 4, -1, 2, 1, -5, 4); // [4, -1, 2, 1]

Resumen

¡Felicitaciones! Has completado el laboratorio del subarreglo máximo. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.