Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

226
Vistas
Incrustar una función de comparación de matriz

Digamos que tengo la siguiente función de comparación de matrices:

 function cmp_arrs(a, b) { if (a === b) return true; if (a.length != b.length) return false; for (let i=0; i < a.length; i++) if (a[i] != b[i]) return false; return true; }

¿Cómo podría convertir esto, en particular el bucle for , en una función de flecha javascript de una sola línea? Hasta ahora tengo:

 const cmp_arrs2 = (a,b) => (a === b) || ((a.length === b.length) && (<forLoop?>))

Mi enfoque actual es encadenarlo y ver si funciona, pero parece un poco crudo/incorrecto:

 const cmp_arrs2 = (a,b) => (a === b) || ((a.length === b.length) && (Object.values(a).toString() == Object.values(b).toString()))
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede usar una función de orden superior como .every() . Para que .every() devuelva true , la devolución de llamada debe devolver true para cada elemento, si devuelve false para cualquier elemento, .every() dará como resultado false . Puede usar el segundo argumento de la devolución de llamada para obtener el índice i para tomar el elemento correspondiente de la matriz b :

 const cmp_arrs2 = (a,b) => a === b || a.length === b.length && a.every((elem, i) => elem === b[i]);

&& tiene mayor precedencia de operadores que || , por lo que la agrupación () también se puede omitir si lo desea.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes hacer algo como lo siguiente:

 // Create a Separate Function const cmp_loop = (a, b) => { for (let i=0; i < a.length; i++) if (a[i] != b[i]) return false; return true; } // Now make a single line function const cmp_array = (a, b) => (a === b) || ((a.length === b.length) && cmp_loop(a, b)) // You can also do this: const cmp_array_2 = (a, b) => (a === b) || ((a.length === b.length) && a.reduce((equal, current, index) => !equal ? equal : current === b[index], true)) // Another quick way (If you are sure that the elements in both arrays are on same positions or indexes): const cmp_array_3 = (a, b) => JSON.stringify(a) === JSON.stringify(b);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda