"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > SET en JavaScript (Tutorial para principiantes)

SET en JavaScript (Tutorial para principiantes)

Publicado el 2024-11-04
Navegar:182

SET in JavaScript (Tutorial for Beginners)

Hola,

¿Está buscando una estructura de datos que almacene valores únicos, le permita insertar valores, encontrar el número total de valores y eliminar valores? La elección perfecta para esto es un Set. Muchos lenguajes de programación incluyen una estructura de datos Set incorporada y JavaScript no es una excepción. Profundicemos en cómo funcionan los conjuntos.

¿Qué es Establecer?
El Conjunto es una estructura de datos que le permite almacenar valores únicos de cualquier tipo, ya sean valores primitivos o referencias de objetos. El conjunto permite operaciones de inserción, eliminación, actualización y tamaño con complejidad temporal O(1). Lo que hace que el fraguado sea más rápido y eficiente.

Los conjuntos están diseñados para brindar tiempos de acceso rápidos. Por lo general, se implementan de manera que la búsqueda de elementos sea más rápida que simplemente verificar cada elemento uno por uno. La implementación típica puede ser una tabla hash (búsqueda O(1)) o un árbol de búsqueda (búsqueda O(log(N)).

Puntos clave

  • Acceso rápido: los conjuntos brindan acceso rápido a los elementos.
  • Implementación: generalmente se implementa mediante tablas hash o árboles de búsqueda.
  • Tiempo de búsqueda: el tiempo de búsqueda promedio es mejor que O(N), a menudo O(1) u O(log(N)).

Métodos básicos

  1. add: Agregará un elemento al conjunto. Si el elemento está presente en el conjunto, no hará nada.
  2. tiene: devolverá verdadero si el elemento está presente en el conjunto; de lo contrario, será falso.
  3. size: Devolverá el tamaño del conjunto.
  4. eliminar: eliminará el elemento del conjunto.
  5. keys: el método .keys() en un conjunto de JavaScript devuelve un nuevo objeto iterador que contiene los valores del conjunto en el orden en que se insertaron.

Ejemplos

// 1. Create a new Set and use the .add() method to add elements
const mySet = new Set();
mySet.add(10);
mySet.add(20);
mySet.add(30);

console.log(mySet); // Output: Set { 10, 20, 30 }

// 2. Check if the Set has a specific element using .has() method
console.log(mySet.has(20)); // Output: true
console.log(mySet.has(40)); // Output: false

// 3. Delete an element from the Set using .delete() method
mySet.delete(20);
console.log(mySet); // Output: Set { 10, 30 }

// 4. Iterate over the Set using .keys() method
// In Sets, .keys() and .values() do the same thing
for (const key of mySet.keys()) {
  console.log(key);
}
// Output:
// 10
// 30

// 5. Get the size of the Set using .size property
console.log(mySet.size); // Output: 2


Ejemplo de conjunto con problema de leetcode:

3. Subcadena más larga sin caracteres repetidos

Dada una cadena s, encuentre la longitud de la subcadena más larga sin caracteres repetidos.

Solución

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    let set = new Set();
    let ans = 0;
    let s_index = 0;
    for (let i = 0; i 



Explicación:
La función lengthOfLongestSubstring utiliza una técnica de ventana deslizante con un Set para encontrar la subcadena más larga sin repetir caracteres:

  • Ampliar ventana: agrega caracteres al conjunto si aún no están presentes.
  • Reducir ventana: elimina caracteres del inicio de la ventana cuando se encuentran duplicados, ajustando el tamaño de la ventana.
  • Actualizar longitud: realiza un seguimiento de la longitud máxima de la subcadena con caracteres únicos.
  • El enfoque garantiza una complejidad de tiempo O(N) eficiente al procesar cada carácter como máximo dos veces.

Eso es todo, si tienes alguna duda o alguna sugerencia o cualquier cosa no dudes en agregar comentarios.

Fuentes:
MDN (Establecer)

Declaración de liberación Este artículo se reproduce en: https://dev.to/yashrajxdev/set-data-structure-in-javascript-2e4i?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3