Базовый объект JavaScript на самом деле является лучшим выбором здесь.Чтобы найти обратное сопоставление, вы можете сделать:
function mphToKM(val){
for(var km in KM_MPH){
if(KM_MPH[km] === val){
return km;
}
}
return null;
}
Или, если вы ожидаете, что придется выполнять много поисков, я бы порекомендовал иметь вторичный объект JS, который является зеркалом первого
var mph_km = {};
for(var km in KM_MPH){
mph_km[KM_MPH[km]] = km;
}
// mph_km[16] ==> 10
Я не знаю, действительно ли вы делаете это для преобразования между километрами в час в мили в час ... если так, то, кажется, имеет смысл просто сделать преобразование напрямую, а не полагаться нахеш-отображение значений.
var conversionRate = 1.609344; // kilometres per mile
function kphToMPH(val){
return val / conversionRate ;
}
function mphToKPH(val){
return val * conversionRate;
}