You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS如何访问外部嵌套数组属性 实现货币汇率转换功能

实现方案

你卡住的核心点是如何根据货币名称从二维数组DB中取出对应的汇率值,整体实现分3步走:

  • 先从入参中拆解出需要的变量:待转换金额是arr[1],源货币名称是arr[0],目标货币名称是第三个入参curr,只有第一个入参arg值为"convert"时才执行转换逻辑。
  • 从DB中匹配汇率:DB是嵌套数组,每个子数组的第0位是货币标识、第1位是对应汇率,直接用数组的find()方法遍历匹配货币名,就能拿到对应汇率。
  • 按照你已经明确的公式金额 * 源汇率 / 目标汇率计算返回结果即可。

完整可运行代码

var DB = [["euro", 1.2], ["gbp", 1.5], ["yen", 1.3]];

function Converter (arg, arr, curr) {
  if (arg === "convert" ) {
    const amount = arr[1];
    // 提取源货币名
    const sourceCurr = arr[0];
    // 提取目标货币名
    const targetCurr = curr;

    // 匹配源货币汇率
    const sourceRate = DB.find(item => item[0] === sourceCurr)[1];
    // 匹配目标货币汇率
    const targetRate = DB.find(item => item[0] === targetCurr)[1];

    // 按公式计算返回
    return (amount * sourceRate) / targetRate;
  }
  // 非convert场景可以按需加逻辑,比如抛出错误提示、返回0等
}

结果验证

调用示例代码:

Converter("convert", ["euro", 100], "gbp");

计算过程为100 * 1.2 / 1.5 = 80,和你预期的输出完全一致。

踩坑提示:匹配货币名时是严格相等判断,如果传入的货币名字符串大小写和DB中存储的不一致(比如传"Euro"而DB中是"euro"),会导致find()匹配不到值报错,需要做容错的话可以在比较时统一把字符串转成小写再判断。

内容的提问来源于stack exchange,提问作者kilnerbank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 19:54:20