【发布时间】:2020-01-30 22:18:54
【问题描述】:
这更像是一个关于代码和数学的一般问题。我数学一点也不擅长,我还在学习如何在编程中应用数学。
假设我有一个数据对象,其中包含数量、度量和类型,例如 feet 或 lb。
const data = {
0: {
'type': 'imperial',
'unit': 'ft',
'amount': 3
},
1: {
'type': 'imperial',
'unit': 'lb',
'amount': 5
},
2: {
'type': 'imperial',
'unit': 'mph',
'amount': 7
}
}
我需要遍历这些数据并根据类型转换每个数据(假设类型就是它的名字)
Object.keys(data).map(key => {
convert(data[key]['amount'], data[key]['type'], data[key]['unit'])
})
该函数将其转换为:
const convert = (amount, type, unit) => {
const calc = // ???
return calc;
}
我的问题是,如何根据测量类型进行转换?我知道 1 英尺是 0.3048 米,如果我需要将 5 英尺转换为米,我会这样做 5*0.3048。
但是,我如何在代码中应用它,包含英制和公制单位列表,以及如何将它添加到转换函数?
【问题讨论】:
-
第一步,您可以在
if (type == "imperial") { ... }和if (unit == "feet") return amount * 0.3048;中进行操作 -
也许您还需要知道要转换成哪个单位,例如 mph 变成 m/s 或 km/h?
-
是的,我可以理解如何使用 mathsisfun.com/metric-imperial-conversion-charts.html 之类的东西进行转换,只是不确定如何在代码中应用它......
-
@ChrisG 我可能需要进行大约 10 次测量。如果这些单元存储在它自己的对象中并且我会遍历每个对象,这会是什么样子?我还需要通过点击事件将公制转换为英制...
标签: javascript reactjs math units-of-measurement