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.

