JavaScript предлагает различные способы конвертирования единиц измерения. В данном ответе мы рассмотрим несколько примеров для наиболее популярных типов единиц, таких как длина, вес, температура и время.
1. Конвертирование единиц длины:
Для конвертирования единиц длины, таких как метры, футы, дюймы и т.д., можно использовать следующий код:
function convertLength(value, fromUnit, toUnit) { const units = { meter: 1, foot: 0.3048, inch: 0.0254, // Добавьте сюда другие единицы длины, если нужно }; const convertedValue = value * units[fromUnit] / units[toUnit]; return convertedValue; } // Пример использования const lengthInMeters = convertLength(5, 'foot', 'meter'); console.log(lengthInMeters); // 1.524 (примерно)
2. Конвертирование единиц массы:
Для конвертирования единиц массы, таких как граммы, килограммы, фунты и т.д., можно использовать следующий код:
function convertWeight(value, fromUnit, toUnit) { const units = { gram: 1, kilogram: 1000, pound: 453.592, // Добавьте сюда другие единицы массы, если нужно }; const convertedValue = value * units[fromUnit] / units[toUnit]; return convertedValue; } // Пример использования const weightInKilograms = convertWeight(500, 'gram', 'kilogram'); console.log(weightInKilograms); // 0.5
3. Конвертирование единиц температуры:
Для конвертирования единиц температуры, таких как Цельсий, Фаренгейт, Кельвин и т.д., можно использовать следующий код:
function convertTemperature(value, fromUnit, toUnit) { // Формулы конвертирования const celsiusToFahrenheit = (celsius) => (celsius * 9/5) + 32; const celsiusToKelvin = (celsius) => celsius + 273.15; const fahrenheitToCelsius = (fahrenheit) => (fahrenheit - 32) * 5/9; const fahrenheitToKelvin = (fahrenheit) => (fahrenheit + 459.67) * 5/9; const kelvinToCelsius = (kelvin) => kelvin - 273.15; const kelvinToFahrenheit = (kelvin) => (kelvin * 9/5) - 459.67; let convertedValue; // Выбор формулы на основе переданных единиц if (fromUnit === 'celsius' && toUnit === 'fahrenheit') { convertedValue = celsiusToFahrenheit(value); } else if (fromUnit === 'celsius' && toUnit === 'kelvin') { convertedValue = celsiusToKelvin(value); } else if (fromUnit === 'fahrenheit' && toUnit === 'celsius') { convertedValue = fahrenheitToCelsius(value); } else if (fromUnit === 'fahrenheit' && toUnit === 'kelvin') { convertedValue = fahrenheitToKelvin(value); } else if (fromUnit === 'kelvin' && toUnit === 'celsius') { convertedValue = kelvinToCelsius(value); } else if (fromUnit === 'kelvin' && toUnit === 'fahrenheit') { convertedValue = kelvinToFahrenheit(value); } else { return 'Неподдерживаемые единицы температуры'; } return convertedValue; } // Пример использования const temperatureInFahrenheit = convertTemperature(100, 'celsius', 'fahrenheit'); console.log(temperatureInFahrenheit); // 212 (примерно)
4. Конвертирование единиц времени:
Для конвертирования единиц времени, таких как секунды, минуты, часы и т.д., можно использовать следующий код:
function convertTime(value, fromUnit, toUnit) { const units = { second: 1, minute: 60, hour: 3600, // Добавьте сюда другие единицы времени, если нужно }; const convertedValue = value * units[fromUnit] / units[toUnit]; return convertedValue; } // Пример использования const timeInMinutes = convertTime(3600, 'second', 'minute'); console.log(timeInMinutes); // 60
Обратите внимание, что в каждой функции есть объект units
, хранящий соотношения между единицами измерения. Если вы хотите добавить другие единицы измерения, вам нужно просто добавить их в этот объект с нужными значениями.