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

220
Visualizações
Generar un valor aleatorio a partir de una matriz basada en la posición del índice del elemento de la matriz dentro de un bucle en JavaScript

Tengo una matriz de valores de distancia fijos o aleatorios, multiplicados por la escala de un mapa, mapScale . Los valores aleatorios se pueden generar usando la función randomNum(num1, num2) .

Estoy buscando asignar a la distance variable un nuevo valor, para cada iteración dentro de un ciclo, usando una posición de índice de matriz de distances predeterminada. El valor de la posición del índice de la matriz debe permanecer igual para cada iteración dentro del bucle (por ejemplo, 6), pero el valor de la distance debe cambiar para cada iteración si el elemento de la matriz es un número aleatorio para la posición de índice especificada.

Tenga en cuenta que si se especifica una posición de índice de "aleatorización", quiero obtener un nuevo número aleatorio para cada iteración (por ejemplo, 6,22, 7,08, 9,45, etc.) y no simplemente uno predeterminado constante (por ejemplo, 7,84 ).

El siguiente código funciona, pero llamar a randomNum para cada iteración probablemente no sea óptimo, especialmente porque ya conocemos la posición de índice del elemento que buscamos recuperar. Tenga en cuenta también que el número de iteraciones, n , varía de aproximadamente 500 a aproximadamente 10 000.

 var indexPosition = findIndexPosition(...) for (let i = 0; i <= n; i++){ var distances = [ mapscale * 0.25, mapscale * 0.75, mapscale * 1, mapscale * 1.5, mapscale * 2, mapscale * randomNum(3, 5), mapscale * randomNum(6, 10), mapscale * randomNum(15, 50), mapscale * randomNum(100, 500), mapscale * randomNum(1000, 2500), ]; var distance = distances[indexPosition] [...] }

Me gustaría encontrar la solución más elegante (velocidad óptima / balance de número de línea) para lograr el comportamiento deseado. Estoy abierto a usar una declaración de switch , una function , un object , etc., siempre que el código sea conciso y el rendimiento esté optimizado.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Qué tal esto:

 var indexPosition = findIndexPosition(...) const distances = [ () => mapscale * 0.25, ... () => mapscale * randomNum(1000, 2500) ]; for (let i = 0; i <= n; i++){ var distance = distances[indexPosition]() ... }
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