Какие способы есть для расширяемого конвертера валют?
Код правильно работает с данными которые уже у него есть в Json, НО главная проблема в том что если нужно добавить новую валюту то приходиться добавлять коэффициенты для всех существующих. Как можно это автоматизировать?
|
1 |
{ "metr":{ "name": "metr", "metr":1, "kilometers": 0.01, "inch": 0.039, "foot": 0.32, "sm": 100 }, "sm":{ "name": "sm", "sm": 1, "metr":0.01, "kilometers": 1e-5, "inch": 0.39, "foot": 0.032 }, "kilometers":{ "name": "kilometers", "metr":1000, "sm": 10000, "inch": 39370, "foot": 3280 }, "inch":{ "name": "inch", "metr":0.0254, "sm": 2.54, "kilometers": 2.54e-5, "foot": 0.083 }, "foot":{ "name": "foot", "metr":0.3048, "sm": 30.48, "kilometers": 0.0003048, "inch": 12 } } |
|
1 |
let input = document.querySelector('.input'); let inputRes = document.querySelector('.input-result'); let select = document.querySelector('.select-distance'); let selectRes = document.querySelector('.select-distance-result'); let text = document.querySelector('.text'); async function getResponce(){ let response = await fetch('./app.json'); let measurement = await response.json(); let key; let result; for(key in measurement){ select.innerHTML +=`<option>${measurement[key].name}</option>` selectRes.innerHTML +=`<option>${measurement[key].name}</option>` }; input.addEventListener('input', () =>{ checkChange(); }); select.addEventListener('change', ()=>{ checkChange(); }); inputRes.addEventListener('input', () =>{ checkChange(); }); selectRes.addEventListener('change', ()=>{ checkChange(); }); function checkChange(){ for(key in measurement){ if(select.value == measurement[key].name){ let selectMeasurement = select.value; let selectSecondMeasurement = selectRes.value; result = multiply(input.value, measurement[selectMeasurement][selectSecondMeasurement]); inputRes.value = result; }; }; }; function multiply(inputValue, measurementNum){ return (inputValue*measurementNum).toFixed(2); }; }; |
Дополнительно:
Вы можете добавить булев флаг "базовая единица", которая будет обозначать самую главную единицу измерения в своей группе. Кроме этого нужно добавить поля для указания ссылки на референсную единицу и коэффициент приведения к ней.
Тогда
1) у каждой единицы измерения будет всегда фиксированный набор атрибутов, и не надо редактировать все старые записи.
2) в рамках своей группы всегда можно привести значение к базовой единице, а потом к искомой - всего два преобразования, а если одна из единиц конвертации базовая, то одно.
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для создания расширяемого конвертера валют можно использовать различные подходы и технологии. Ниже приведу несколько способов, которые можно применить для реализации такого конвертера:
1. Использование API сторонних сервисов: можно воспользоваться API различных финансовых учреждений или сервисов, предоставляющих информацию о курсах валют. Например, можно использовать API от Yahoo Finance, Open Exchange Rates или других подобных сервисов. При этом необходимо учитывать ограничения по количеству запросов и возможные платные услуги.
2. Создание собственной базы данных курсов валют: можно регулярно обновлять и хранить курсы валют в собственной базе данных. Для этого можно написать скрипт, который будет автоматически обновлять данные о курсах валют с помощью API сторонних сервисов.
3. Использование плагинов и расширений: можно создать конвертер валют в виде плагина для популярных CMS или фреймворков, таких как WordPress, Joomla, Laravel и другие. Это позволит легко интегрировать конвертер валют на свой сайт и расширять его функциональность с помощью дополнительных модулей.
4. Реализация алгоритмов конвертации валют: можно написать собственные алгоритмы конвертации валют, учитывая курсы валют и комиссии банков. Например, можно использовать методы кросс-курса или метод покупки/продажи валюты.
В итоге, выбор способа реализации конвертера валют зависит от конкретной задачи, требований к производительности, доступности и актуальности данных о курсах валют, а также от возможности расширения функциональности в будущем.