Proyecto conversor de divisas usando una API con JavaScript

Factor de conversión

  • Nuestro siguiente reto es recalcular los demás campos cuando uno cambia, ¿cómo podemos hacerlo?

  • La clave está en calcular un factor de conversión usando una regla de tres y lo haremos diviendo el valor original de cambio por el valor actual establecido. Como resultado obtendremos el factor o tanto por uno (es decir un porcentaje de 0 a 1) para multiplicar en los demás campos.

scripts.js

console.log(input.value / input.dataset.cambio);
  • Para realizar los cálculos en los inputs tendremos que volver a recorrerlos y establecer sus valores:
function valorCambiado(input) {
  let factor = input.value / input.dataset.cambio;
  inputs.forEach(input => {
    input.value = input.dataset.cambio * factor;
  })
}
  • Con esto ya tenemos el conversor funcionando, auque os quiero comentar algo que debemos evitar y eso es repetir variables como nombres de parámetros. Aunque en nuestro caso no ha pasado nada, podría darse la situación en que os surjan problemas, así que os recomiendo que en lugar de usar el nombre input dentro de la función valorCambiado, pongáis otro, por ejemplo "campo", ya que esos representan todos los diferentes "campos" y no sólo el que ha cambiado:
function valorCambiado(input) {
  let factor = input.value / input.dataset.cambio;
  inputs.forEach(campo => {
    campo.value = (campo.dataset.cambio * factor).toFixed(2);
  })
}
  • Ya sólo nos falta hacer que los valores de cambio se tomen de la API automáticamente, pero antes dejadme mostraros como redondear con JavaScript nuestro resultado a dos decimales:
campo.value = (campo.dataset.cambio * factor).toFixed(2);
  • Por cierto, está divertido usar la tecla arriba y abajo en los campos para ver como se van actualizando nuestras conversiones.