如何在 JavaScript 数组中映射和存储国家和货币

How to map and store countries and currencies in JavaScript Array

我有三种不同的货币,每种货币对应多个国家。第三种货币(欧元)映射到几个国家。如何在 javascript 数组中构建我的数据,以便按国家/地区轻松获取相应的货币代码。我有以下数据,使用国家代码轻松访问它的最佳结构方式是什么。

USD - en-US,es-MX
GBP - en-GB
EUR - de-AT,nl-BE,el-CY,et-EE,fi-FI,fr-FR,de-DE,el-GR,en-IE

你可以使用一个对象,它的恒定时间查找,而不是你必须循环的数组:

var currencies = {
  'de-AT': 'EUR',
  'nl-BE': 'EUR'
  ...
}

如果使用数组:

var currencies = {
 'USD': ['en-US', 'es-MX']
 ...
}

虽然它看起来更干净,也更容易制作,但它会更慢,因为您必须遍历每个数组以检查该项目是否存在

实际上你可以像这样进行重新映射操作;

var data = { 
    USD : ["en-US","es-MX"],
    GBP : ["en-GB"],
    EUR : ["de-AT","nl-BE","el-CY","et-EE","fi-FI","fr-FR","de-DE","el-GR","en-IE"]
},
  curMap = {};
Object.keys(data).forEach(k => data[k].forEach(c => curMap[c] = k));
console.log(curMap);