javascript中列表列表的哈希
Hash of hash of list of lists in javascript
我是一名学习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"
]
]
}
}"
哈希只是一组键/值对。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数据结构中了,所以问题是您需要对数据进行什么样的访问,以了解是否应该使用某些键查找来重构数据?
通常情况下,最好专注于问题/解决方案,而不是试图用另一种语言做同样的事情。
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- AngularJS:获取链接中没有哈希的查询字符串值
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- 如何在浏览器重新加载时保存位置哈希状态
- jQuery scrollTop-哈希错误
- 动态添加哈希标记;t工作
- 在Javascript中实现对哈希值的暴力攻击
- 如何在JavaScript/Node中计算SHA256哈希和Base64字符串编码
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- javascript中列表列表的哈希
- 为什么从位置哈希中选择下拉列表在 Chrome 上有效,但不适用于 Firefox、IE 或 Safari
- 有没有一种漂亮的方法可以将列表/哈希数组转换为可用的字符串
- 使用哈希标记从下拉列表中预先选择项目
- Rails哈希到javascriptjson的参数列表不是
- 在Javascript中存储带有哈希值的大列表的最佳方式
- 如何获得合并集嵌套数组列表哈希映射在immutablejs
- 数据结构-如何在javascript中实现哈希表(包括关联列表)
- jQuery根据JSON列表更改页面内容和哈希
- 排序数组/对象/哈希是填充Chrome列表框