JavaScriptProgramación

Descubra cómo usar WeakSet() en JavaScript

Aprende a manejar la función de colección débil en tu próximo proyecto

La función WeakSet() es una herramienta útil en JavaScript que permite crear conjuntos de valores débiles. Estos conjuntos son especialmente útiles en situaciones donde se necesita almacenar información transitoria, como referencias a objetos que no deben ser mantenidos fuertemente por el recolector de basura.

Ejemplo 1: Verificar si una propiedad es única en un objeto


const obj = { nombre: "Juan", edad: 25 };
const set = new WeakSet([obj]);

if (set.has(obj)) {
  console.log("La propiedad es única en el objeto");
} else {
  console.log("La propiedad no es única en el objeto");
}

Ejemplo 2: Comprobar si dos objetos son iguales


const obj1 = { nombre: "Juan", edad: 25 };
const obj2 = { nombre: "Juan", edad: 25 };

const set1 = new WeakSet([obj1]);
const set2 = new WeakSet([obj2]);

if (set1.has(obj1) && set2.has(obj2)) {
  console.log("Los objetos son iguales");
} else {
  console.log("Los objetos no son iguales");
}

Ejemplo 3: Verificar si un elemento pertenece a una lista


const lista = [1, 2, 3, 4, 5];
const setLista = new WeakSet(lista);

if (setLista.has(3)) {
  console.log("El elemento 3 pertenece a la lista");
} else {
  console.log("El elemento 3 no pertenece a la lista");
}

Ejemplo 4: Comprobar si un objeto es único en una colección de objetos


const personas = [
  { nombre: "Juan", edad: 25 },
  { nombre: "Pedro", edad: 30 },
  { nombre: "Ana", edad: 28 }
];

const setPersonas = new WeakSet(personas.map((p) => p));

for (let persona of personas) {
  if (setPersonas.has(persona)) {
    console.log("La persona es única en la colección");
  } else {
    console.log("La persona no es única en la colección");
  }
}

Ejemplo 5: Limpiar un arreglo eliminando elementos duplicados


const numeros = [1, 2, 2, 3, 4, 4, 5];
const setNumeros = new WeakSet(new Set(numeros));

const arregloLimpio = [...setNumeros];
console.log("Arreglo limpio:", arregloLimpio);

Ejemplo 6: Verificar si un objeto pertenece a una colección de objetos


const personas = [
  { nombre: "Juan", edad: 25 },
  { nombre: "Pedro", edad: 30 },
  { nombre: "Ana", edad: 28 }
];

const setPersonas = new WeakSet(personas.map((p) => p));

if (setPersonas.has({ nombre: "Juan", edad: 25 })) {
  console.log("El objeto pertenece a la colección");
} else {
  console.log("El objeto no pertenece a la colección");
}

Conclusión

Utilizar WeakSet() en tus proyectos puede mejorar la eficiencia y la seguridad de tu código. Al utilizar conjuntos débiles, puedes asegurarte de que los objetos no sean mantenidos fuertemente por el recolector de basura y evitar problemas de memoria no liberada o referencias ciclicas.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.