我正在编写我的第一个jQuery插件来进行单位转换。这是一个相当简单的插件,我将原始值,我想要转换的单位和我想要转换的单位(现在作为字符串)。
但是,作为这个库的一部分,我希望能够知道我可以转换哪些单位。当我在F#中这样做时,我可以使用有区别的联合来表示类型,然后有一个“主”区分联合,它保存了这些类型中的每一种。这使我可以将单位作为一种类型使用,并确保它是类型安全的(例如,我无法将Grams转换为Meters)。
我如何在JavaScript中执行此类操作?我想我需要使用JSON来表示我可以转换的所有类型(可能不是?),但我不知道我是否完全理解如何做这样的事情。我很感激一个起点,所以我可以继续研究和学习。谢谢。
答案 0 :(得分:1)
你可以像这样创建一个数组:
var conversions = {
meters: {
conversion: 1,
unit: "length"
},
feet: {
conversion: 1 / 3.28, // 1 foot is about a third of a meter
unit: "length"
},
kilograms: {
conversion: 1,
unit: "weight"
},
pounds: {
conversion: 1 / 2.204,
unit: "weight"
}
}
然后,您所要做的就是确保您转换的内容与您转换的内容具有相同的单位。每种类型的单位以SI单位映射到其值(例如,所有长度单位将转换为米),以便您可以从任何一种类型的单位转到任何其他单位。