问题标签 [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.
ruby - Ruby中哈希成语的哈希?
在 Ruby 中创建散列的散列允许方便的二维(或更多)维查找。但是,插入时必须始终检查第一个索引是否已存在于哈希中。例如:
最好在自动创建新哈希的情况下执行以下操作:
同样,在查找第一个索引不存在的值时,如果返回 nil 而不是接收未定义的“[]”错误方法会更好。
可以创建一个具有此行为的 Hash 包装类,但是否存在用于完成此任务的 Ruby 习语?
ruby - 在另一种散列惯例中保存散列?
我想将一些散列对象保存到一个集合中(在 Java 世界中,将其视为一个列表)。我在网上搜索了一下Ruby中是否有类似的数据结构,没有找到。目前我一直在尝试将 hash 保存a[]
到 hashb[]
中,但是在尝试从 hash 中获取数据时遇到了问题b[]
。
Ruby 上有没有内置的集合数据结构?如果不是,是否在另一种散列常见做法中保存散列?
perl - 如何在 Perl 中创建散列哈希?
我是 Perl 的新手。我需要在 Perl 中定义一个如下所示的数据结构:
我怎样才能做到这一点?
ruby - 通过键名从 ruby 中的多维哈希中提取特定值
假设我有一个多维哈希,并且在其中一个子哈希中我有一个 key=>value 对,我需要通过 key 检索它。我该怎么做?
示例哈希:
关键总是:k,我需要得到“针”
我注意到 ruby 1.8 中没有散列的“扁平化”功能,但如果它在那里,我想我会做
我想我需要为此编写一个递归函数?
谢谢
ruby - 如何从提供的参数递归地定义 Ruby 中的哈希?
这段代码填充了一个@options
哈希。values
是一个Array
包含零个或多个异质项的。如果您使用作为条目populate
的参数进行调用Hash
,它会使用您为每个条目指定的值来假定默认值。
我想做的是改变populate
它以递归方式填充@options
. 有一种特殊情况:如果要填充键的值是一个完全由(1)符号或(2)键为符号(或两者的某种组合)的哈希组成的数组,那么它们应该被视为子键而不是与该键关联的值,并且populate
应该递归地重新应用用于评估原始参数的相同逻辑。
这有点难以用语言表达,所以我写了一些测试用例。以下是一些测试用例和@options
之后的期望值:
如果需要更改签名populate
以适应某种递归版本,这是可以接受的。理论上可能发生的嵌套数量没有限制。
关于我如何解决这个问题的任何想法?
ruby - 嵌套散列定义?()
确定是否定义的最简洁方法是什么,如果或为零@hash[:key1][:key2]
则不会引发错误?@hash
@hash[:key1]
defined?(@hash[:key1][:key2])
如果存在则返回True @hash[:key1]
(不判断是否:key2
定义)
perl - 帮助理解 perl 哈希
Perl 新手在这里...我在这个工作 perl 脚本中得到了一些 HASH 代码的帮助,我只需要帮助理解该代码,如果它可以以一种我更容易或更直观地理解 HASHES 的使用的方式编写?
总之,该脚本执行一个正则表达式来过滤日期,其余的正则表达式将提取与该日期相关的数据。
我想了解的是以下几行:
又是几行:
这是哈希引用的示例吗?哈希的哈希?
我想我对 {$set} 的使用感到困惑 :-(
regex - 帮助打印出所需格式的哈希键
如果可能的话,我需要帮助将数据从散列/散列引用打印到 STDOUT 或包含特定顺序的数据的文件。
我有一个使用哈希引用的 perl 例程,如下所示:
使用转储器输出:
我希望看到的格式化输出:
刚刚添加(2010 年 8 月 7 日):我正在使用的示例原始日志文件:(最近添加以更好地表示源日志)
perl - perl - 帮助哈希和转储记录
我有一个 perl 脚本,它只保留命名集的最后一组记录,而且我有不止一组记录。所以它在哈希中写入数据并只保留最后一组。我需要帮助打印所有记录。谢谢!
这是我的脚本的副本:
这是它转储时的样子:
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
该解决方案可能对遇到此问题的其他人有所帮助,因此以下代码可以按照我想要的方式进行工作: