Javascript: конвертеры одной строчкой кода или перевод температур
В сети много удобных конвертеров для перевода одних единиц измерения в другие, а крупные поисковики выдают такие конвертеры даже по подходящим поисковым запросам, например, попросим Гугль помочь преобразовать градусы Цельсия в Ранкина - и конвертер тут как тут.
Если оставить в стороне вопросы разработки интерфейса, написать "универсальный" конвертер на том же Яваскрипте - вопрос нескольких операторов.
Продемонстрируем это для единиц измерения температуры, учтя градусы Цельсия, Кельвина, Фаренгейта и Ранкина, показываемые гуглевским виджетом.
Всю работу выполнят несколько переменных и маленькие функции для вывода результатов в документ:
Исходник этого приложения, выполняемый как обычный файл .html:
<div id="tempDiv"></div> <script type="text/javascript"> var k2c = k => k - 273.15; //Кельвин в Цельсия var k2r = k => k * 1.8; //Кельвин в Ранкина var k2f = k => k2r(k) - 459.67; //Кельвин в Фаренгейта Number.prototype.toMaxDecimal = function (d) { return +this.toFixed(d) + ''; } function kCnv(k) { //Кельвин в другие единицы document.getElementById('tempDiv').innerHTML += ''+k+'K° = '+k2c(k).toMaxDecimal(2)+'C° = '+ k2r(k).toMaxDecimal(2)+'R° = '+k2f(k).toMaxDecimal(2)+'F°<br>'; } var c2k = с => с + 273.15; //Цельсий в Кельвина var c2f = c => c * 1.8 + 32; //Цельсий в Фаренгейта var c2r = c => c2f(c) + 459.67; //Цельсий в Ранкина function cCnv(c) { //Цельсий в другие единицы document.getElementById('tempDiv').innerHTML += ''+c+'C° = '+c2k(c).toMaxDecimal(2)+'K° = '+ c2r(c).toMaxDecimal(2)+'R° = '+c2f(c).toMaxDecimal(2)+'F°<br>'; } kCnv(21); kCnv(273); cCnv(21); cCnv(273); </script> <noscript><div>Пример недоступен из-за отключённого Javascript в браузере</div></noscript>
28.09.2017, 16:30 [5407 просмотров]