问题标签 [hash-of-hashes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5302 浏览

ruby - Ruby中哈希成语的哈希?

在 Ruby 中创建散列的散列允许方便的二维(或更多)维查找。但是,插入时必须始终检查第一个索引是否已存在于哈希中。例如:

最好在自动创建新哈希的情况下执行以下操作:

同样,在查找第一个索引不存在的值时,如果返回 nil 而不是接收未定义的“[]”错误方法会更好。

可以创建一个具有此行为的 Hash 包装类,但是否存在用于完成此任务的 Ruby 习语?

0 投票
5 回答
8380 浏览

ruby - 在另一种散列惯例中保存散列?

我想将一些散列对象保存到一个集合中(在 Java 世界中,将其视为一个列表)。我在网上搜索了一下Ruby中是否有类似的数据结构,没有找到。目前我一直在尝试将 hash 保存a[]到 hashb[]中,但是在尝试从 hash 中获取数据时遇到了问题b[]

Ruby 上有没有内置的集合数据结构?如果不是,是否在另一种散列常见做法中保存散列?

0 投票
5 回答
5725 浏览

perl - 如何在 Perl 中创建散列哈希?

我是 Perl 的新手。我需要在 Perl 中定义一个如下所示的数据结构:

我怎样才能做到这一点?

0 投票
2 回答
2559 浏览

ruby - 通过键名从 ruby​​ 中的多维哈希中提取特定值

假设我有一个多维哈希,并且在其中一个子哈希中我有一个 key=>value 对,我需要通过 key 检索它。我该怎么做?

示例哈希:

关键总是:k,我需要得到“针”

我注意到 ruby​​ 1.8 中没有散列的“扁平化”功能,但如果它在那里,我想我会做

我想我需要为此编写一个递归函数?

谢谢

0 投票
2 回答
539 浏览

ruby - 如何从提供的参数递归地定义 Ruby 中的哈希?

这段代码填充了一个@options哈希。values是一个Array包含零个或多个异质项的。如果您使用作为条目populate的参数进行调用Hash,它会使用您为每个条目指定的值来假定默认值。

我想做的是改变populate它以递归方式填充@options. 有一种特殊情况:如果要填充键的值是一个完全由(1)符号或(2)键为符号(或两者的某种组合)的哈希组成的数组,那么它们应该被视为子键而不是与该键关联的值,并且populate应该递归地重新应用用于评估原始参数的相同逻辑。

这有点难以用语言表达,所以我写了一些测试用例。以下是一些测试用例和@options之后的期望值:

如果需要更改签名populate以适应某种递归版本,这是可以接受的。理论上可能发生的嵌套数量没有限制。

关于我如何解决这个问题的任何想法?

0 投票
6 回答
4782 浏览

ruby - 嵌套散列定义?()

确定是否定义的最简洁方法是什么,如果或为零@hash[:key1][:key2]则不会引发错误?@hash@hash[:key1]

defined?(@hash[:key1][:key2])如果存在则返回True @hash[:key1](不判断是否:key2定义)

0 投票
2 回答
372 浏览

perl - 帮助理解 perl 哈希

Perl 新手在这里...我在这个工作 perl 脚本中得到了一些 HASH 代码的帮助,我只需要帮助理解该代码,如果它可以以一种我更容易或更直观地理解 HASHES 的使用的方式编写?

总之,该脚本执行一个正则表达式来过滤日期,其余的正则表达式将提取与该日期相关的数据。

我想了解的是以下几行:

又是几行:

这是哈希引用的示例吗?哈希的哈希?
我想我对 {$set} 的使用感到困惑 :-(

0 投票
4 回答
164 浏览

regex - 帮助打印出所需格式的哈希键

如果可能的话,我需要帮助将数据从散列/散列引用打印到 STDOUT 或包含特定顺序的数据的文件。

我有一个使用哈希引用的 perl 例程,如下所示:

使用转储器输出:

我希望看到的格式化输出:

刚刚添加(2010 年 8 月 7 日):我正在使用的示例原始日志文件:(最近添加以更好地表示源日志)

0 投票
2 回答
429 浏览

perl - perl - 帮助哈希和转储记录

我有一个 perl 脚本,它只保留命名集的最后一组记录,而且我有不止一组记录。所以它在哈希中写入数据并只保留最后一组。我需要帮助打印所有记录。谢谢!

这是我的脚本的副本:

这是它转储时的样子:

0 投票
2 回答
1111 浏览

ruby - 访问不存在的键时的多级哈希默认参数,如 h[1][1] += 1

我正在尝试创建一个Hash-es Hash。第二级散列的值是一个默认为0的整数。我要做的是从一个空的散列散列开始,然后当我添加一个值时,如果键不存在,它们的键应该被添加具有默认值。

Hash当我用一个简单的整数尝试这个时,它工作正常:

h现在有一个键,值为 1。完美。

但是当我的哈希值是哈希时,它似乎不起作用:

我做错了什么,或者我不能将哈希的默认值设置为Hash.new(0)

编辑:

根据下面的答案,我能够弄清楚我做错了什么。实际上,我能够找出我的想法错误的地方。长话短说,h[1][1]不嵌套Hash.new调用,除非你给Hash.new一个代码块来调用。表达式的值h[1][1] += 1符合1预期,但只有最里面的哈希被正确初始化。

我发布这个是因为虽然我上面的示例使用了 2 维散列,但我的实际问题使用了 3 维散列:

syms[level][exchange][symbol] = count

该解决方案可能对遇到此问题的其他人有所帮助,因此以下代码可以按照我想要的方式进行工作: