Разбираемся с рекурсиейОбход в глубинуhard

Кросс-курс

В массиве 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