javascript - 如何在 Intl.NumberFormat 中格式化货币符号?

标签 javascript reactjs

在 JSON 数据中,我有如下形式的某些货币数据值:

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

我创建了一个函数,它接受 2 个参数,一个用于“金额”,另一个用于“货币代码”,但是,当第二个参数是“$”或“¥”(即货币符号)时,可以做什么。我的目的是将货币符号与上述 JSON 数据映射并给出相关输出,例如:传递“$”然后它应该与上述 JSON 数据进行比较过滤并传递“USD”输出然后它可以传入下面的函数

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);
    }
  };

函数调用如下:{currencyFormatterNew(10000, "JPY")}

用上述 json 数据映射“货币符号”然后提供可在创建的函数中使用的所需输出的最佳解决方案是什么?

这是codesandbox链接:https://codesandbox.io/s/selection-and-operation-antd-4-17-0-alpha-0-forked-2sqzt

最佳答案

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

你可以试试这个。 如果你愿意,你可以改变最后的返回语句如下

 return Object.values(k);  // it will return an array

关于javascript - 如何在 Intl.NumberFormat 中格式化货币符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69279172/

相关文章:

javascript - 在针对最近的类(class)时遇到问题

javascript - 仅数字的 ng-pattern 将接受像 angularjs 中的 '-' 这样的字符

javascript - React-dom 的钩子(Hook)调用无效。我能做些什么?

reactjs - 没有路线匹配位置

javascript - 在 ReactJS 中设置父组件内子组件的 prop

javascript - 使用 jQuery 从另一个元素(表)替换 HTML 元素中的文本

javascript - 谷歌图表 : On mouse hover bring selected chart to front

javascript - 如何使用 YouTube API 将视频观看次数获取到 Google 电子表格中?

javascript - 在 Redux sub-reducers 中设置初始状态

reactjs - 使用scss的自定义样式以进行react-bootstrap