Javascript 如何在jQuery插件中表示数据集?

Javascript 如何在jQuery插件中表示数据集?,javascript,jquery,json,jquery-plugins,Javascript,Jquery,Json,Jquery Plugins,我正在编写我的第一个jQuery插件来进行单位转换。这是一个相当简单的插件,我使用原始值、我想要转换的单位和我想要转换的单位(现在作为字符串) 然而,作为这个库的一部分,我想知道我可以转换哪些单位。当我在F#中这样做时,我可以使用歧视联合来表示这些类型,然后有一个“主”歧视联合,它持有这些类型中的每一个。这使我能够将单位作为一种类型使用,并确保它是类型安全的(例如,我无法将克转换为米) 我将如何在JavaScript中执行类似的操作?我想我需要使用JSON来表示我可以在它们之间转换的所有类型(可

我正在编写我的第一个jQuery插件来进行单位转换。这是一个相当简单的插件,我使用原始值、我想要转换的单位和我想要转换的单位(现在作为字符串)

然而,作为这个库的一部分,我想知道我可以转换哪些单位。当我在F#中这样做时,我可以使用歧视联合来表示这些类型,然后有一个“主”歧视联合,它持有这些类型中的每一个。这使我能够将单位作为一种类型使用,并确保它是类型安全的(例如,我无法将克转换为米)


我将如何在JavaScript中执行类似的操作?我想我需要使用JSON来表示我可以在它们之间转换的所有类型(可能不是?),但我不知道我是否完全理解如何做这样的事情。我希望有一个起点,这样我可以继续研究和学习。谢谢。

您可以创建如下数组:

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"
    }
}

然后,你所要做的就是确保你转换的对象和你转换的对象有相同的单位。每种类型的单位都映射到其以国际单位制表示的值上(例如,所有长度单位都将转换为米),这样您就可以从一种类型的任何单位转换到另一种类型的任何单位。

我最终接受了您的想法,将其转换为一个公共中间点(通常是公共国际单位制),然后再转换回新单位。编写代码非常容易。我仍然依赖于字符串,但我现在认为其他任何东西都是多余的。不过,把你的答案标记为接受,因为它让我找到了我的解决方案。谢谢