javascript中列表列表的哈希

Hash of hash of list of lists in javascript

本文关键字:列表 哈希 javascript      更新时间:2024-05-31

我是一名学习javascript的perl程序员。在perl中,我经常使用散列从数据库查询返回的数据中创建"数据结构"。例如,我会构建这样的散列:

*loop through list of data*
    push(@{$hash{$key1}{$key2}}, [$value1, $value2, $value3, $value4]);
*endloop*

这将把对四个值的列表的引用添加到散列中的列表中(具有多个键)。

我很难找到关于如何在javascript中实现类似结构的信息。我的目标是读取一个JSON文件,该文件有一个对象列表(没有特定的顺序),并将其转换为哈希,这样就可以按键排序,然后将其显示在HTML表中。

也许这是思考这个问题的错误方式,javascript将有不同的方法。我想知道我想做的事情是否可行,创建哈希的代码,以及访问哈希的代码。

谢谢,Rob

这是我的直接翻译,在谷歌Chrome控制台提示> 上测试

> hash = {}
Object {}
> hash["key1"] = {}
Object {}
> hash["key1"]["key2"] = []
[]
> hash["key1"]["key2"].push([ 'value1', 'value2', 'value3', 'value4'])
1
> hash
Object {key1: Object}
> JSON.stringify(hash, null, 2)
"{
  "key1": {
    "key2": [
      [
        "value1",
        "value2",
        "value3",
        "value4"
      ]
    ]
  }
}"
Perl中的

哈希只是一组键/值对。Javascript有类似的数据结构-对象。你可以做你想做的事

> a = {}
{}
> a.res = []
[]
> a.res.push([1,2,3])
1
> a.res.push([3,"sd",1])
2
> a
{ res: 
   [ [ 1, 2, 3 ],
     [ 3, 'sd', 1 ] ] }

Javascript没有有序哈希和带有多个键的查找。您可以使用对象的属性通过单个唯一键创建查找,然后根据需要构建该概念。请参阅以下答案,了解如何在javascript中实现简单形式的哈希或集。

基本思想是创建一个对象,然后向其添加键/值对:

var myLookup = {};
myLookup[key1] = value1;
myLookup[key2] = value2;

然后,您可以通过以下键查找值:

console.log(myLookup[key1]);    // shows value1

如果你想要更具体的帮助,你必须在你的问题中更具体。向我们展示您从JSON开始的内容,并准确描述您希望如何访问它,这样我们就可以了解将其放入哪种类型的JS数据结构中最有意义。记住,一旦解析了JSON,此时它已经在javascript数据结构中了,所以问题是您需要对数据进行什么样的访问,以了解是否应该使用某些键查找来重构数据?

通常情况下,最好专注于问题/解决方案,而不是试图用另一种语言做同样的事情。