В массиве rates
хранится информация об обменных курсах валют.
Например, ["EUR", "USD", 1.0763]
означает, что за 1 евро можно купить 1.0763 доллара, а за 1 доллар — 0.9291 евро (будем считать для простоты, что курсы покупки и продажи обратно пропорциональны).
const rates = [ ["CNY", "RUB", 12.2533], ["EUR", "USD", 1.06949], ["USD", "AUD", 1.50465], ["USD", "INR", 83.5615], ["USD", "CHF", 0.893897], ["PLN", "CHF", 0.221066], ["PLN", "CNY", 1.79569], ["HUF", "CNY", 0.0195958], ["EGP", "CNY", 0.152191], ["KGS", "UAH", 0.468331], ["KGS", "IQD", 15.0924], ["KGS", "BRL", 0.0628392], ["UYU", "IQD", 33.1237], ["RUB", "JPY", 1.79607], ["GBP", "JPY", 202.136], ["GBP", "USD", 1.26494], ];
Из-за санкций валютная пара рубль-доллар перестала торговаться на бирже. Это значит, что напрямую курс определить невозможно. Но если мы знаем курс рубля к юаню и курс юаня к доллару, то мы сможем вычислить курс рубля к доллару.
Реализуйте функцию exchangeRate(rates, currencyFrom, currencyTo)
, которая принимает массив с информацией о курсах и две валюты.
Если информация о курсе валют есть в массиве, верните сколько стоит валюта currencyTo
в валюте currencyFrom
. Если курс можно вычислить через другую валюту, вычислите его. Если курс невозможно определить, выбросьте ошибку с сообщением Exchange rate is undefined
.
exchangeRate(rates, "USD", "EUR") === 1.069 exchangeRate(rates, "EUR", "USD") === 0.935 exchangeRate(rates, "USD", "RUB") === 88.971