如何在 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);
我有三种不同的货币,每种货币对应多个国家。第三种货币(欧元)映射到几个国家。如何在 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);