javascript中列表列表的哈希

javascript中列表列表的哈希,javascript,hash,Javascript,Hash,我是一名学习javascript的perl程序员。在perl中,我经常使用哈希从数据库查询返回的数据创建“数据结构”。例如,我将构建如下哈希: *loop through list of data* push(@{$hash{$key1}{$key2}}, [$value1, $value2, $value3, $value4]); *endloop* 这会将对四个值列表的引用添加到具有多个键的哈希列表中 我很难找到如何在javascript中实现类似结构的信息。我的目标是读入一个JS

我是一名学习javascript的perl程序员。在perl中,我经常使用哈希从数据库查询返回的数据创建“数据结构”。例如,我将构建如下哈希:

*loop through list of data*
    push(@{$hash{$key1}{$key2}}, [$value1, $value2, $value3, $value4]);
*endloop*
这会将对四个值列表的引用添加到具有多个键的哈希列表中

我很难找到如何在javascript中实现类似结构的信息。我的目标是读入一个JSON文件,该文件包含一个没有特定顺序的对象列表,并将其转换为散列,以便可以按键排序,然后将其显示在HTML表中

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

谢谢,
Rob

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

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

var myLookup = {};
myLookup[key1] = value1;
myLookup[key2] = value2;
然后,您可以通过键查找值:

console.log(myLookup[key1]);    // shows value1
如果你想要更具体的帮助,你必须在你的问题上更具体。向我们展示您开始使用的JSON,并准确描述您希望如何访问它,这样我们就可以找出什么类型的JS数据结构最适合将其放入其中。请记住,一旦解析了JSON,它就已经在javascript数据结构中了,因此问题在于您需要对数据进行何种访问,以了解是否应该通过某些键查找来重构数据


一般来说,最好集中精力解决问题,而不是像其他语言那样做。Javascript没有有序散列和多键查找。您可以使用对象的属性通过单个唯一键创建查找,然后根据需要构建该概念。请参阅,了解如何在javascript中实现简单形式的哈希或set

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

var myLookup = {};
myLookup[key1] = value1;
myLookup[key2] = value2;
然后,您可以通过键查找值:

console.log(myLookup[key1]);    // shows value1
如果你想要更具体的帮助,你必须在你的问题上更具体。向我们展示您开始使用的JSON,并准确描述您希望如何访问它,这样我们就可以找出什么类型的JS数据结构最适合将其放入其中。请记住,一旦解析了JSON,它就已经在javascript数据结构中了,因此问题在于您需要对数据进行何种访问,以了解是否应该通过某些键查找来重构数据


一般来说,最好专注于问题/解决方案,而不是像其他语言那样做。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 ] ] }

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

这是我的直译,在Google Chrome控制台提示符下测试>


这是我的直译,在Google Chrome控制台提示符下测试>


你不只是在每个对象包含4个东西的地方创建一个对象数组,有什么原因吗?你想把一个对象数组变成一个数组对象吗?可能是重复的而不是重复的-不是询问解析字符串。询问如何重新构造数据。是否有理由不在每个对象包含4个内容的情况下创建一个对象数组?是否要将一个对象数组转换为一个数组对象?可能是重复的而不是重复的-不是询问解析字符串。正在询问如何重构数据。