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

89
Vistas
Cómo combinar la función de mapa y abrazadera juntas

Hay dos funciones

 const clamp = (num, a, b) => Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b)); const map = (x, a, b, c, d, clamp) => (x - a) * (d - c) / (b - a) + c const c = map(-50, 0, 1, 0, 100) const _c = clamp(c, 0, 1) console.log(_c, c)

¿Hay alguna manera de que las dos funciones se puedan combinar, algo así como

 const _c = map(-50, 0, 1, 0, 100, {clamp: true})

para que no necesite copiar parámetros de la función de mapa para obtener el nuevo valor dentro del rango de parámetros.

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

0

Es bastante fácil, solo cree una sola función y eso ejecuta secuencialmente la función de mapa original y si el parámetro de clamp es true , calcule eso y devuélvalo. Compruebe a continuación el código.

 const map(x, a, b, c, d, clamp) { const map_result = (x - a) * (d - c) / (b - a) + c; if (clamp) { const clamp_result = Math.max(Math.min(map_result, Math.max(a, b)), Math.min(a, b)); return clamp_result } return map_result; }

Puedes usarlo así: const _c = map(-50, 0, 1, 0, 100, true)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede pasar la función a la función de abrazadera y usarla dentro de la misma. O si las funciones están en la misma ubicación, puede invocarlas dentro de la función de abrazadera

 const map = (x, a, b, c, d, clamp) => (x - a) * (d - c) / (b - a) + c const _map = (x, a, b, c, d, map) => Math.max(Math.min(map(x, a, b, c, d), Math.max(a, b)), Math.min(a, b)); const a = _map(-50, 0, 1, 0, 100, map) console.log(a)

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