javascript - 一个数组还是多个? (哈希表)

标签 javascript arrays algorithm hashtable

我有一个数组,用于存储我当前正在处理的转换程序的转换系数。

一个简短的例子:

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/

相关文章:

javascript - 私有(private)方法和字段

javascript - jQuery:将元素附加到输入字段并删除?

javascript - 禁用 &lt;input type ="submit"> 的表单是否可以被黑客攻击以提交?

JavaScript 将按钮 ID 传递给 asp.net 隐藏字段

java - 如何将Array方法转换为ArrayList方法?

algorithm - 搜索范围数组中的成员资格

javascript - 在 VueJS 中循环包含两个不同数组的对象

java - 尝试将监听器添加到 JTextFields 数组时出现错误

python - python中用点均匀随机填充磁盘的方法

C++ 和 OpenCV : clustering white pixels algorithm