Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

146
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda