如何在JavaScript Array中映射和存储国家/地区和货币

时间:2016-05-23 22:59:30

标签: javascript jquery arrays underscore.js

我有三种不同的货币,每种货币都映射到多个国家/地区。第三种货币(EUR)映射到多个国家。如何在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

2 个答案:

答案 0 :(得分:2)

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

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

如果使用数组:

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

虽然它可能看起来更干净,更容易制作,但它会更慢,因为你必须遍历每个数组来检查项目是否在那里

答案 1 :(得分:0)

实际上你可以做这样的重新映射操作;



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