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

145
Vistas
Usando JavaScript, cuente la cantidad de elementos iguales o superiores al índice en un bucle

Estoy trabajando en una función de JavaScript que puede crear un índice H de autores. H-Index es el mayor número de publicaciones que ha escrito un autor con tantas citas en otros artículos. tengo

 let array = [0,0,0,1,1,2,3,3,5,6,6,7,20,20,20]

Este es el número de artículos citados en orden ascendente

Necesito hacer un bucle en la matriz hasta que el índice sea mayor que el recuento de elementos iguales o superiores al índice

Como

 for (let i = 1; i < array.length; i++){ count all items that are above i (0's get skipped) if there are more than i then loop to next i if not exit with i - 1 console.log(i) }

Lo que estoy buscando es 6 con un bucle eficiente. Gracias por la ayuda

He jugado con el mapa y filtrado dentro del bucle, pero parece que no puedo obtener la sintaxis correcta

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

0

Puede invertir la matriz o ordenarla de manera descendente y encontrar el índice donde el índice (más uno) es mayor que el valor.

 const values = [0, 0, 0, 1, 1, 2, 3, 3, 5, 6, 6, 7, 20, 20, 20], hIndex = [...values].reverse().findIndex((v, i) => v < i + 1); console.log(hIndex);

Acérquese sin retroceder. Kodos a Jonas Wilms .

 const values = [0, 0, 0, 1, 1, 2, 3, 3, 5, 6, 6, 7, 20, 20, 20], length = values.length, hIndex = length - values.findIndex((v, i) => v >= length - i); console.log(hIndex);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Tal vez no sea la forma más eficiente, pero se puede hacer con un filtro.

Primero, las matrices se declaran con llaves cuadradas [] , no con llaves {} . Entonces, sería:

let array = [0,0,0,1,1,2,3,3,5,6,6,7,20,20,20]

Y la operación que pides sería:

 array .filter((element, index) => element >= index) .length

La devolución de llamada que acepta el filtro puede admitir 3 argumentos:

  1. El elemento
  2. El índice
  3. la matriz

La documentación se puede encontrar aquí .

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