Comprobar si los arrays tienen el mismo contenido

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos cómo comprobar si dos arrays tienen el mismo contenido en JavaScript. Crearemos una función que tome dos arrays y devuelva true si contienen los mismos elementos, independientemente del orden, y false en caso contrario. Utilizaremos una combinación de Set, bucle for...of y Array.prototype.filter() para lograr esta funcionalidad.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28164{{"Comprobar si los arrays tienen el mismo contenido"}} javascript/data_types -.-> lab-28164{{"Comprobar si los arrays tienen el mismo contenido"}} javascript/arith_ops -.-> lab-28164{{"Comprobar si los arrays tienen el mismo contenido"}} javascript/comp_ops -.-> lab-28164{{"Comprobar si los arrays tienen el mismo contenido"}} javascript/cond_stmts -.-> lab-28164{{"Comprobar si los arrays tienen el mismo contenido"}} javascript/loops -.-> lab-28164{{"Comprobar si los arrays tienen el mismo contenido"}} javascript/higher_funcs -.-> lab-28164{{"Comprobar si los arrays tienen el mismo contenido"}} javascript/spread_rest -.-> lab-28164{{"Comprobar si los arrays tienen el mismo contenido"}} end

Comprobando el contenido igual en arrays

Para comprobar si dos arrays contienen los mismos elementos, independientemente del orden, siga estos pasos:

  1. Abra la Terminal/SSH y escriba node.
  2. Utilice un bucle for...of sobre un Set creado a partir de los valores de ambos arrays.
  3. Utilice Array.prototype.filter() para comparar la cantidad de ocurrencias de cada valor distinto en ambos arrays.
  4. Devuelva false si las cantidades no coinciden para ningún elemento, true en caso contrario.

Aquí está el código correspondiente:

const haveSameContents = (a, b) => {
  for (const v of new Set([...a, ...b]))
    if (a.filter((e) => e === v).length !== b.filter((e) => e === v).length)
      return false;
  return true;
};

Para probar la función, utilice el siguiente código:

haveSameContents([1, 2, 4], [2, 4, 1]); // true

Resumen

¡Felicitaciones! Has completado el laboratorio Comprobar si los arrays tienen el mismo contenido. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.