在Javascript上执行映射的问题

时间:2019-04-26 16:13:19

标签: javascript string dictionary int mapping

我正在尝试使此JavaScript正常工作。

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

function GetMappedCurrencyValue(CurrencyISO) {

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

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

当我尝试调用mapCurrencyTable函数时,出现以下错误:

  

CurrentISO-未定义

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

任何人都可以提供有关此地图中我所缺少的内容的线索吗?

3 个答案:

答案 0 :(得分: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']);

答案 1 :(得分:0)

我认为这就是您想要的:

function GetMappedCurrencyValue(CurrencyISO) {

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

  return CurrencyISO - mapCurrencyTable["GBP"];
}

答案 2 :(得分:0)

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

也许你想

return mapCurrencyTable[CurrencyISO][1];

在您的函数中
然后使用函数do:

GetMappedCurrencyValue("GBP");