当前位置:首页 > JavaScript

js实现单位转化

2026-02-02 22:45:04JavaScript

实现单位转换的方法

使用函数封装转换逻辑

通过定义函数封装不同单位之间的转换逻辑,例如长度、重量、温度等。

js实现单位转化

// 长度单位转换(米与英尺)
function meterToFeet(meter) {
    return meter * 3.28084;
}

function feetToMeter(feet) {
    return feet / 3.28084;
}

// 温度转换(摄氏与华氏)
function celsiusToFahrenheit(celsius) {
    return (celsius * 9/5) + 32;
}

function fahrenheitToCelsius(fahrenheit) {
    return (fahrenheit - 32) * 5/9;
}

使用对象存储转换关系

将单位转换关系存储在对象中,便于扩展和管理。

js实现单位转化

const unitConverter = {
    length: {
        meter: {
            feet: (val) => val * 3.28084,
            inch: (val) => val * 39.3701
        },
        feet: {
            meter: (val) => val / 3.28084
        }
    },
    temperature: {
        celsius: {
            fahrenheit: (val) => (val * 9/5) + 32
        }
    }
};

// 调用示例
const metersToFeet = unitConverter.length.meter.feet(5);

动态表单实现交互

结合HTML表单动态实现用户输入的单位转换。

<input type="number" id="inputValue" placeholder="输入数值">
<select id="fromUnit">
    <option value="meter">米</option>
    <option value="celsius">摄氏度</option>
</select>
<select id="toUnit">
    <option value="feet">英尺</option>
    <option value="fahrenheit">华氏度</option>
</select>
<button onclick="convert()">转换</button>
<p id="result"></p>

<script>
function convert() {
    const value = parseFloat(document.getElementById('inputValue').value);
    const fromUnit = document.getElementById('fromUnit').value;
    const toUnit = document.getElementById('toUnit').value;
    let result;

    if (fromUnit === 'meter' && toUnit === 'feet') {
        result = meterToFeet(value);
    } else if (fromUnit === 'celsius' && toUnit === 'fahrenheit') {
        result = celsiusToFahrenheit(value);
    }

    document.getElementById('result').textContent = `结果: ${result}`;
}
</script>

使用第三方库

对于复杂场景,可以使用成熟的单位转换库如convert-units

// 安装库:npm install convert-units
import convert from 'convert-units';

// 示例:将5千米转换为英里
const result = convert(5).from('km').to('mi');
console.log(result); // 输出转换结果

注意事项

  • 浮点数精度问题需处理,可用toFixed()限制小数位数。
  • 输入验证确保用户输入为有效数字。
  • 扩展性可通过配置文件或API动态加载单位关系。

标签: 单位js
分享给朋友:

相关文章

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js实现图片移动

js实现图片移动

使用CSS和JavaScript实现图片移动 方法一:使用CSS动画结合JavaScript控制 通过CSS定义动画关键帧,JavaScript动态添加或移除动画类。 /* CSS部分 */ .m…