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

326
Vistas
Javascript reduce (): ¿por qué esto devuelve falso?

Básicamente, quiero evaluar todos los elementos de una matriz. Si todos los elementos son del mismo tipo Y valor (comprobación de igualdad estricta), devuelve verdadero; de lo contrario, devuelve falso. ¿Que me estoy perdiendo aqui? - ¡Gracias!

 function equalityChecker(arr) { return arr.reduce((prev, curr) => { if (prev !== curr) { return false; } if (prev === curr) { return true; } }); } console.log(equalityChecker([0,0,0,0,0,0])); //returns false console.log(equalityChecker([1,1,1,1,1,1])); //returns false

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

reduce compara el resultado de la prueba anterior con el índice actual .

No compara el índice anterior con el índice actual.

(La excepción es si no pasa un valor como segundo argumento para reduce , en cuyo caso la primera comparación es entre los dos primeros índices).

La primera prueba compara 0 y 0 , por lo que la segunda prueba compara true y 0 , por lo que la tercera prueba compara false y false y así sucesivamente.


Cuando depuró esto, debería haber agregado un registro que le habría mostrado lo que estaba sucediendo.

 function equalityChecker(arr) { console.log(arr); return arr.reduce((prev, curr) => { console.log(`prev: ${prev}, curr: ${curr}`); if (prev !== curr) { return false; } if (prev === curr) { return true; } }); } console.log(equalityChecker([0, 0, 0, 0, 0, 0])); //returns false console.log(equalityChecker([1, 1, 1, 1, 1, 1])); //returns false

about 4 years ago · Juan Pablo Isaza Denunciar

0

Array#reduce devuelve un valor y usted devuelve el resultado de una comparación.

En la siguiente iteración, usa este valor booleano y lo compara con un valor de la matriz.

Sugerencia 1: Reducir no funciona para este enfoque.

La otra desventaja es la duración de la iteración, se repite para todos los elementos a pesar de un resultado false .

Sugerencia 2: necesita un método que regrese temprano.

Resultado: Tome Array#every y compare cada elemento con el primero.

 function equalityChecker(array) { return array.every((value, _, [first]) => first === value); } console.log(equalityChecker([0, 0, 0, 0, 0, 0])); // true console.log(equalityChecker([1, 1, 1, 1, 1, 1])); // true console.log(equalityChecker([0, 0, 0, 1, 0, 0])); // false

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