我正在使用 JavaScript 工作,希望保留一份设置的公里/英里/小时近似值列表。 (我无法以编程方式进行转换,我正在使用需要某些值的外部 API,因此它确实必须是等效的字典。)
目前我正在使用一个对象:
var KM_MPH = { 10: 16, 12: 20, 15: 24 };
从英里/小时转换为公里非常简单:
var km = KM_MPH[10];
给定公里数,如何找到英里/小时?另外,对象是 JavaScript 中用于此类事物的最佳数据结构吗?我更习惯Python。
最佳答案
基本的 JavaScript 对象实际上是这里的最佳选择。要查找反向映射,您可以执行以下操作:
function mphToKM(val){
for(var km in KM_MPH){
if(KM_MPH[km] === val){
return km;
}
}
return null;
}
或者,如果您预计必须进行大量查找,我建议使用第二个 JS 对象,它是第一个 JS 对象的镜像
var mph_km = {};
for(var km in KM_MPH){
mph_km[KM_MPH[km]] = km;
}
// mph_km[16] ==> 10
我不知道您实际上是否这样做是为了在每小时公里到每小时英里之间进行转换...如果是这样,直接进行转换而不是依赖 HashMap 似乎更有意义值。
var conversionRate = 1.609344; // kilometres per mile
function kphToMPH(val){
return val / conversionRate ;
}
function mphToKPH(val){
return val * conversionRate;
}
关于javascript - 相当于字典的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6112484/