Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

92
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!