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

106
Vistas
Dígale a JavaScript que mi matriz está ordenada al buscar un elemento

Tengo una matriz de objetos que sé que está ordenada por una de las propiedades del objeto. Quiero buscar en la matriz el objeto con esa propiedad igual a un valor específico, así que hago esto:

 arrOfObjects.find((obj) => obj.property === value)

Sin embargo, esta es una operación O(n) para una matriz no ordenada, pero O(log n) usando búsqueda binaria en matrices ordenadas.

¿Hay alguna forma de decirle a JavaScript que mi matriz está ordenada al hacer un .find() , o tengo que implementar manualmente una búsqueda binaria?

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

0

No hay una funcionalidad de búsqueda binaria incorporada en JavaScript.

Incluso si hubiera Array#find() en sí mismo no puede beneficiarse de él, ya que espera una devolución de llamada que devuelve true o false . No hay forma de determinar si el resultado esperado está antes o después de un punto determinado en función de un resultado booleano que solo indica una coincidencia.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Podría implementar un prototipo de Array , como

 Array.prototype.binaryFind = function (callbackFn, thisArg) { // code };

Luego, debe especificar una función como devolución de llamada que tenga tres estados para determinar el lado izquierdo o derecho de búsqueda. Una idea es tomar el mismo enfoque que para ordenar donde un valor toma el orden, dependiendo de negativo, cero o positivo, lo que muestra la relación de los valores.

 function findInObjects(key, value) { return function (object, index, array) { // if (object[key] === value) return 0; if (object[key] < value) return -1; else return 1; } }
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