在Javascript上执行映射的问题

问题描述 投票:-1回答:3

我正在努力让这个JavaScript工作。

这里的请求:必须将具有目标系统标识的货币传递给另一个系统,而不是使用我的系统标识,因为我必须使用系统中的IsoCode映射到目标系统上的相关标识。

function GetMappedCurrencyValue(CurrencyISO) {

  var mapCurrencyTable = [
    ["GBP", 1],
    ["EUR", 2],
    ["USD", 51],
    ["COP", 102],
    ["BRL", 104]
  ];

  return mapCurrencyTable[CurrencyISO - "GBP"][1];
}

当我试图调用mapCurrencyTable函数时,我收到以下错误:

CurrentISO - 未定义

我在主函数中有一个变量来从我的货币表中获取IsoCode,这是调用CurrentISO,这是该函数的全局变量。

任何人都可以给我一个关于我在这张地图上缺少什么的线索吗?

javascript string dictionary int mapping
3个回答
1
投票

只需转换对象中的表,您就不需要任何函数:

var mapCurrencyTable = {
  "GBP" : 1,
  "EUR" : 2,
  "USD" : 51,
  "COP" : 102,
  "BRL" : 104
};

console.log(mapCurrencyTable['USD']);

如果您确实需要使用数组,这里有一种将数组转换为对象的方法:

var mapCurrencyTable = [
    ["GBP", 1],
    ["EUR", 2],
    ["USD", 51],
    ["COP", 102],
    ["BRL", 104]
];
  
var objTable = {};
  
mapCurrencyTable.map(cur=>objTable[cur[0]]=cur[1]);

console.log(objTable['COP']);

0
投票

我想这就是你想要的:

function GetMappedCurrencyValue(CurrencyISO) {

  var mapCurrencyTable = {
    "GBP" : 1,
    "EUR": 2,
    "USD": 51,
    "COP": 102,
    "BRL": 104
  };

  return CurrencyISO - mapCurrencyTable["GBP"];
}

0
投票

目前尚不清楚您希望从演示文稿中获得什么。

也许你想

return mapCurrencyTable[CurrencyISO][1];

从你的功能, 然后使用函数做:

GetMappedCurrencyValue("GBP");
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.