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

221
Vistas
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 Respuestas
Responde la pregunta

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 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