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