2016-01-28 3 views
1

Юмор меня здесь, но у меня есть тривиальная задача ввода числа ввода и форматирования его в код валюты.Код валюты для локали JS

IE:

var value = 1000; 
value.toLocaleString('en-AU, { 
    style: 'currency', 
    currency: 'AUD;, 
    minimumFractionDigits: 2 
}); 
// A$1,000.00 

Который работает - Единственная проблема, это находится в зависимости, где я прохожу значение и валюту ..

функция (значение, валюта)

Какой теперь я должен поддерживать список валют для сопоставлений локали. Есть быстрый и легкий способ форматирования числа в валюте. Im вполне счастлив послал locale вместо валюты. В любом случае, я не хочу поддерживать два списка.

+0

Possib le duplicate of [Где я должен положить json result в money.js?] (http://stackoverflow.com/questions/30531765/where-should-i-put-the-json-result-in-money-js) –

+0

@PaulSweatte не совсем ... Я не беспокоился о конвертации валют по отношению к обменным курсам. Это было больше по отношению к получению локального кода валюты, поэтому ' AUD => en-AU' –

ответ

1

Вам не нужны два списка. Просто используйте карту (объект), используя валюту в качестве ключа, а локаль - как значение.

var currencyToLocale = { 
 
    'AUD': 'en-AU' 
 
    // etc... 
 
}; 
 

 
function formatAsCurrency(value, currency) { 
 
    // get the locale from the map... 
 
    var locale = currencyToLocale[currency]; 
 

 
    return value.toLocaleString(locale, { 
 
    style: 'currency', 
 
    currency: currency, 
 
    minimumFractionDigits: 2 
 
    }); 
 
}; 
 

 
console.log(formatAsCurrency(1000, 'AUD'));

+0

Это то, что У меня в настоящее время ... Проблема с этим решением заключается в том, что мне нужно поддерживать объект. –

+0

Что нужно поддерживать? Вы создаете его один раз, и это делается. – forgivenson