当前位置:首页 > JavaScript

js实现单位转化

2026-04-07 16:33:51JavaScript

单位转换实现方法

在JavaScript中实现单位转换通常涉及数学运算和格式化输出。以下是几种常见的单位转换场景及实现方式:

长度单位转换

function convertLength(value, fromUnit, toUnit) {
  const units = {
    mm: 1,
    cm: 10,
    m: 1000,
    km: 1000000,
    in: 25.4,
    ft: 304.8,
    yd: 914.4,
    mi: 1609344
  };
  return (value * units[fromUnit]) / units[toUnit];
}

// 示例:将5英尺转换为米
console.log(convertLength(5, 'ft', 'm')); // 1.524

温度单位转换

function convertTemperature(value, fromUnit, toUnit) {
  if (fromUnit === 'C' && toUnit === 'F') {
    return value * 9/5 + 32;
  }
  if (fromUnit === 'F' && toUnit === 'C') {
    return (value - 32) * 5/9;
  }
  if (fromUnit === 'K' && toUnit === 'C') {
    return value - 273.15;
  }
  // 其他转换组合...
  return value;
}

// 示例:将100℃转换为℉
console.log(convertTemperature(100, 'C', 'F')); // 212

重量单位转换

function convertWeight(value, fromUnit, toUnit) {
  const units = {
    mg: 0.001,
    g: 1,
    kg: 1000,
    oz: 28.3495,
    lb: 453.592,
    ton: 907185
  };
  return (value * units[fromUnit]) / units[toUnit];
}

// 示例:将1磅转换为克
console.log(convertWeight(1, 'lb', 'g')); // 453.592

时间单位转换

function convertTime(value, fromUnit, toUnit) {
  const units = {
    ms: 1,
    s: 1000,
    min: 60000,
    h: 3600000,
    d: 86400000,
    wk: 604800000
  };
  return (value * units[fromUnit]) / units[toUnit];
}

// 示例:将1天转换为小时
console.log(convertTime(1, 'd', 'h')); // 24

货币转换实现

货币转换通常需要实时汇率数据:

async function convertCurrency(amount, fromCurrency, toCurrency) {
  const apiKey = 'YOUR_API_KEY';
  const response = await fetch(`https://api.exchangerate-api.com/v4/latest/${fromCurrency}`);
  const data = await response.json();
  return amount * data.rates[toCurrency];
}

// 示例:将100美元转换为欧元
convertCurrency(100, 'USD', 'EUR').then(console.log);

通用单位转换类

可以创建一个更通用的单位转换类:

js实现单位转化

class UnitConverter {
  constructor() {
    this.conversions = {
      length: { mm:1, cm:10, m:1000, km:1000000 },
      weight: { mg:1, g:1000, kg:1000000 },
      // 其他单位类型...
    };
  }

  convert(value, fromUnit, toUnit, type) {
    const units = this.conversions[type];
    return (value * units[fromUnit]) / units[toUnit];
  }
}

const converter = new UnitConverter();
console.log(converter.convert(1, 'm', 'cm', 'length')); // 100

注意事项

  1. 浮点数精度问题需要考虑,可以使用toFixed()方法控制小数位数
  2. 对于货币转换等需要实时数据的场景,应该处理API请求失败的情况
  3. 可以扩展支持更多单位类型和转换组合
  4. 复杂的单位系统可能需要更复杂的转换公式

以上方法提供了JavaScript中实现常见单位转换的基本模式,可以根据具体需求进行调整和扩展。

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

相关文章

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…