Oh MyUtils

Comparador de Listas - Comparar Dos Listas en Línea

Compare dos listas para encontrar elementos únicos, duplicados, intersecciones y uniones con operaciones de conjuntos — 100% del lado del cliente.

Sensible a mayúsculas
Recortar espacios
Eliminar líneas vacías
Ordenar
Lista A
Lista B
Solo en A

No se encontraron elementos

Preguntas Frecuentes

¿Qué es un Comparador de Listas y por qué lo necesito?

Un Comparador de Listas es una herramienta que toma dos listas de elementos y realiza operaciones de conjuntos para encontrar diferencias, elementos comunes y resultados combinados. Es esencial para tareas de reconciliación de datos como comparar listas de suscriptores de correo electrónico, verificar migraciones de bases de datos o auditar configuraciones de servidores.

¿Cómo uso esta herramienta de comparación de listas?

Ingrese sus elementos en las áreas de texto Lista A y Lista B, con un elemento por línea. La herramienta compara automáticamente las listas en tiempo real. Los resultados se organizan en pestañas: Solo en A, Solo en B, Intersección, Unión y Diferencia Simétrica.

¿Mis datos están seguros? ¿Se suben mis listas a un servidor?

Sus datos están 100% seguros y nunca salen de su navegador. Todas las operaciones de comparación se realizan del lado del cliente usando JavaScript. No se transmiten datos a ningún servidor ni se almacenan.

¿Cuál es la diferencia entre Diferencia y Diferencia Simétrica?

La Diferencia (A - B) le da elementos que están en la Lista A pero NO en la Lista B. Es direccional. La Diferencia Simétrica (A XOR B) le da TODOS los elementos que están en cualquier lista pero NO en ambas — es la combinación de (A - B) y (B - A).

¿Cómo afecta la sensibilidad a mayúsculas en la comparación?

Cuando la sensibilidad a mayúsculas está habilitada (por defecto), Apple y apple se tratan como elementos diferentes. Cuando está deshabilitada, se tratan como el mismo elemento.

¿Qué es el Índice de Similitud de Jaccard?

El Índice de Jaccard mide qué tan similares son dos conjuntos. Se calcula como el tamaño de la intersección dividido por el tamaño de la unión: J(A,B) = |A ∩ B| / |A ∪ B|. Un valor de 0 significa que no hay elementos en común, y un valor de 1 (100%) significa que las listas son idénticas.

¿Cómo maneja la herramienta los duplicados dentro de una lista?

La herramienta detecta duplicados dentro de cada lista y los muestra en las pestañas Dup A y Dup B, junto con el conteo de ocurrencias. Para las operaciones de conjuntos, cada elemento único se cuenta una sola vez.

¿Puede esta herramienta manejar listas muy grandes?

Sí. La herramienta usa operaciones de Set de JavaScript altamente optimizadas. Listas con hasta 100,000 elementos se pueden comparar en menos de 500 milisegundos.

Ejemplos de Código

// List comparison using JavaScript Set operations
function compareLists(listA, listB, options = {}) {
  const { caseSensitive = true, trimWhitespace = true } = options;

  const normalize = (item) => {
    let result = item;
    if (trimWhitespace) result = result.trim();
    if (!caseSensitive) result = result.toLowerCase();
    return result;
  };

  const itemsA = listA.map(normalize).filter(Boolean);
  const itemsB = listB.map(normalize).filter(Boolean);

  const setA = new Set(itemsA);
  const setB = new Set(itemsB);

  const onlyInA = [...setA].filter((item) => !setB.has(item));
  const onlyInB = [...setB].filter((item) => !setA.has(item));
  const intersection = [...setA].filter((item) => setB.has(item));
  const union = [...new Set([...setA, ...setB])];
  const symmetricDiff = [...onlyInA, ...onlyInB];

  const jaccardIndex = union.length > 0
    ? intersection.length / union.length : 0;

  return { onlyInA, onlyInB, intersection, union, symmetricDiff,
    stats: { jaccardIndex: Math.round(jaccardIndex * 1000) / 1000 } };
}

// Usage
const a = ['apple', 'banana', 'cherry', 'date'];
const b = ['banana', 'date', 'elderberry', 'fig'];
const result = compareLists(a, b);
console.log('Only in A:', result.onlyInA);
// ['apple', 'cherry']
console.log('Intersection:', result.intersection);
// ['banana', 'date']

Herramientas relacionadas