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

288
Vistas
¿Cómo formatear el símbolo de moneda en Intl.NumberFormat?

En datos JSON, tengo ciertos valores de datos de moneda en el siguiente formulario:

 const currencyData = [ { "₹": "INR" }, { "¥": "JPY" }, { "€": "EUR" }, { "£": "GBP" } ];

Creé una función que acepta 2 parámetros, uno para 'cantidad' y otro para 'código de moneda', pero, ¿qué se puede hacer cuando el segundo parámetro es "$" o "¥", es decir, un símbolo de moneda? Mi intención es mapear el símbolo de moneda con los datos JSON anteriores y dar la salida relevante, como por ejemplo: se pasa "$", entonces debería filtrar la comparación con los datos JSON anteriores y pasar la salida "USD" y luego se puede pasar en la siguiente función

 const currencyFormatterNew = (amount, currCode) => { let currencyCode; try { if (currCode == "undefined" || currCode == "") { currencyCode = ""; } else { currencyCode = currCode; return new Intl.NumberFormat("en-US", { style: "currency", currency: currencyCode, minimumFractionDigits: 0 }).format(amount); } } catch (err) { console.log(err); } };

La función se llama de la siguiente manera: {currencyFormatterNew(10000, "JPY")}

¿Cuál sería la solución óptima para mapear el 'símbolo de moneda' con los datos json anteriores y luego proporcionar el resultado requerido que podría usarse en la función creada?

Aquí está el enlace de codesandbox: https://codesandbox.io/s/selection-and-operation-antd-4-17-0-alpha-0-forked-2sqzt

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

0

 const getCurrencyCode = (code) => { const k = currencyData.find(a => Object.keys(a) == code); return Object.entries(k)[0][1]; }

puedes probar esto Si lo desea, puede cambiar la última declaración de devolución de la siguiente manera

 return Object.values(k); // it will return an array
about 4 years ago · Juan Pablo Isaza Denunciar

0

Después de que se haya cargado el JSON, almacene la matriz de datos currencyData en un objeto:

const currencyMap = Object.assign({}, ...currencyData)

Luego, puede usar el acceso a la propiedad [prop] para obtener el símbolo equivalente. Esto será mejor para el rendimiento ya que no necesita llamar a .find o similar cada vez que se llama a su función porque esas funciones hacen un bucle.

 const currencyData = [ { "₹": "INR" }, { "¥": "JPY" }, { "€": "EUR" }, { "£": "GBP" } ]; const currencyMap = Object.assign({}, ...currencyData) console.log(currencyMap); let symbol = '₹'; console.log(currencyMap[symbol]);

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