【问题标题】:Issue performing a Mapping on Javascript在 Javascript 上执行映射的问题
【发布时间】:2019-09-16 04:37:45
【问题描述】:

我正在尝试让这个 JavaScript 工作。

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

function GetMappedCurrencyValue(CurrencyISO) {

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

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

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

CurrentISO - 未定义

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

谁能告诉我这张地图缺少什么?

【问题讨论】:

  • 如何调用GetMappedCurrencyValue
  • 请添加一个函数调用的例子和它想要的结果。
  • 您的数组不包含索引CurrencyISO - "GBP"

标签: javascript string dictionary int mapping


【解决方案1】:

我认为这就是你想要的:

function GetMappedCurrencyValue(CurrencyISO) {

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

  return CurrencyISO - mapCurrencyTable["GBP"];
}

【讨论】:

    【解决方案2】:

    只需将表格转换为对象即可,不需要任何功能:

    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']);

    【讨论】:

    • 嗨 Nelson,我确实必须创建一个函数来执行此操作,因为我正试图通过 XML 请求将其发送到另一个系统,您的分享对我来说似乎是这样做的方式,但是当我调用函数时,它返回给我 [object Object] function GetMappedCurrencyValue(CurrencyISO) { var mapCurrencyTable = [ ["GBP", 1], ["EUR", 2], ["USD", 51], ["COP", 102], ["BRL", 104] ]; var objTable = {}; mapCurrencyTable.map(cur=>objTable[cur[0]]=cur[1]); return objTable[]; }
    • 非常抱歉,非常感谢!我只需添加 return objTable[CurrencyISO]; 就可以了!
    • 很高兴我能提供帮助:)
    【解决方案3】:

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

    也许你想

    return mapCurrencyTable[CurrencyISO][1];
    

    在您的职能范围内,
    然后使用该功能:

    GetMappedCurrencyValue("GBP");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-07
      • 2016-08-07
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多