当前位置:首页 > JavaScript

js实现单位转化

2026-04-07 16:33:51JavaScript

单位转换实现方法

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

js实现单位转化

长度单位转换

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

货币转换实现

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

js实现单位转化

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);

通用单位转换类

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

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实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…