"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 > ¿Cómo se puede implementar la funcionalidad Set en JavaScript sin soporte integrado?

¿Cómo se puede implementar la funcionalidad Set en JavaScript sin soporte integrado?

Publicado el 2024-11-09
Navegar:871

How Can You Implement Set Functionality in JavaScript Without Built-in Support?

Imitación de conjuntos en JavaScript

JavaScript no proporciona un objeto Set integrado, pero los desarrolladores a menudo necesitan la capacidad de almacenar valores únicos y desordenados con una búsqueda rápida, capacidades de adición y eliminación.

Uso de un objeto con valores booleanos:
Como se sugiere en la pregunta, se puede usar un objeto para imitar un conjunto. Las claves representan los valores y todos los valores se establecen en verdadero (o cualquier valor no nulo). Este enfoque proporciona una búsqueda y eliminación rápidas, pero la adición se vuelve más lenta a medida que aumenta el número de claves.

ES6 Set Object:
Si su entorno admite ES6 (por ejemplo, navegadores modernos o transpilados código), puede utilizar el objeto Set integrado. Tiene un rendimiento excelente para todas las operaciones establecidas y, además, permite una fácil iteración sobre elementos y evita la coerción de cadenas.

Polyfills y objetos prediseñados:
Para entornos que no admiten ES6, puede usar polyfills como "ES6-Set" u objetos prediseñados como "miniSet" o "set.js" que brindan una funcionalidad similar al objeto ES6 Set. Estos ofrecen ventajas como compatibilidad con navegadores más antiguos o código más pequeño.

Detalles de implementación:

Uso de un objeto:

const setObj = {};
setObj["item1"] = true;
if ("item1" in setObj) { // fast lookup
  console.log("Item found");
}
delete setObj["item1"]; // fast deletion

Usando el objeto de conjunto ES6:

const set = new Set();
set.add("item1");
if (set.has("item1")) { // fast lookup
  console.log("Item found");
}
set.delete("item1"); // fast deletion

Usando un Polyfill:

import Set from "es6-set";
const set = new Set(["item1", "item2"]);
console.log(...set.keys()); // easy iteration

Usando un objeto prediseñado:

const miniSet = new MiniSet("item1", "item2");
if (miniSet.has("item1")) { // fast lookup
  console.log("Item found");
}
miniSet.remove("item1"); // fast deletion

La mejor elección depende de los requisitos específicos y del soporte disponible en su entorno. Para aplicaciones complejas o de rendimiento crítico, el objeto ES6 Set es ideal. De lo contrario, utilizar un objeto, un polirelleno o un conjunto de objetos prediseñado puede proporcionar una solución razonable.

Ú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