如何将英制单位转换为公制单位?
How to convert imperial to metric units?
这更像是一个关于代码和数学的一般问题。我一点也不擅长数学,我还在学习如何在编程中应用数学。
比方说,我有一个包含数量、度量和类型的数据对象,例如 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
.
但是,我如何在代码中应用它,以及英制和公制单位列表,以及如何将它添加到转换函数中?
您可以拥有一个 converter
对象,其中包含要转换的函数和要显示的标签,这是一个示例(根据您的需要调整值和单位):
const data = {
0: {
type: "imperial",
unit: "ft",
amount: 3
},
1: {
type: "imperial",
unit: "lb",
amount: 5
},
2: {
type: "imperial",
unit: "mph",
amount: 7
}
};
const converter = {
imperialToMetric: {
ft: val => val * 0.3048,
lb: val => val * 0.453592,
mph: val => val * 1.60934,
labels: {
ft: "meters",
lb: "Kg",
mph: "kmh"
}
},
metric: {
// reverse the above
}
};
const result = Object.values(data).map(({ amount, type, unit }) => ({
amount: converter.imperialToMetric[unit](amount),
unit: converter.imperialToMetric.labels[unit],
type: "metric"
}));
console.log(result);
这更像是一个关于代码和数学的一般问题。我一点也不擅长数学,我还在学习如何在编程中应用数学。
比方说,我有一个包含数量、度量和类型的数据对象,例如 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
.
但是,我如何在代码中应用它,以及英制和公制单位列表,以及如何将它添加到转换函数中?
您可以拥有一个 converter
对象,其中包含要转换的函数和要显示的标签,这是一个示例(根据您的需要调整值和单位):
const data = {
0: {
type: "imperial",
unit: "ft",
amount: 3
},
1: {
type: "imperial",
unit: "lb",
amount: 5
},
2: {
type: "imperial",
unit: "mph",
amount: 7
}
};
const converter = {
imperialToMetric: {
ft: val => val * 0.3048,
lb: val => val * 0.453592,
mph: val => val * 1.60934,
labels: {
ft: "meters",
lb: "Kg",
mph: "kmh"
}
},
metric: {
// reverse the above
}
};
const result = Object.values(data).map(({ amount, type, unit }) => ({
amount: converter.imperialToMetric[unit](amount),
unit: converter.imperialToMetric.labels[unit],
type: "metric"
}));
console.log(result);