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
相关产品推荐
相关产品推荐

