我有一个数组,用于存储我当前正在处理的转换程序的转换系数。
一个简短的例子:
var Length =
{
"lengthsA" :
{
"inch" : 0.0254,
"yard" : 0.9144,
"mile" : 1609.344,
"foot" : 0.3048,
"metres": 1
}}
这将会变得更大,而且数量也会更多。
看来我有两个选择。我可以声明许多数组,每个数组对应一种转换类型,并在函数中使用和 if else 来指示应该调用哪个数组来进行转换。另一种方法是使用一个巨大的数组来存储所有内容。这将消除对 if else 的需要,也消除了声明许多数组的需要,但代价是将所有内容组合成可能变得一团糟的东西。
我赞成第一个选项,主要是因为我喜欢模块化,而且它更容易调试/编辑。
我还担心速度和访问时间。对于一个大数组,会产生影响,因为我使用键来确定调用哪些值。上面的键是“lengthsA”
谢谢。
最佳答案
如果我做这个项目,我肯定会使用分层结构。我可能会从这样的事情开始:
var conversions = {
length : {
lengthsA : {
inch : 0.0254,
yard : 0.9144,
mile : 1609.344,
foot : 0.3048,
metres: 1
},
lengthsB : {
. . .
}
},
mass : {
},
. . .
}
结构为:conversions.<category>.<conversion_group>.<unit_name>
。它可能与任何其他结构一样易于维护。
您可以考虑添加属性 reference
这将指示应作为引用的单位的名称(例如,在 reference : "metres"
的情况下为 lengthsA
)。我对单位名称也更加一致(“英寸”是单数;“米”是复数)。根据您的应用程序,您可能还希望每个转换都是具有值和不确定性的结构。 (有些换算系数是准确的;有些则不然。)
关于javascript - 一个数组还是多个? (哈希表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17575776/