"file.txt","path" => "/folder/f-6ren">
gpt4 book ai didi

ruby-on-rails - 从另一个哈希创建一个哈希

转载 作者:数据小太阳 更新时间:2023-10-29 07:27:20 25 4
gpt4 key购买 nike

我目前正在处理两个包含共同值的不同散列,我想规范化散列键名称。

哈希 #1 看起来像:

files = [{ "filename" => "file.txt","path" => "/folder/file.txt" }]

虽然哈希 #2 看起来像:

files = [{ "file" => "file.txt", "dir" => "/folder/file.txt" }]

有没有一种方法可以遍历哈希 #2 并创建一个新的哈希,以便键是“文件名”和“路径”而不是"file"和“目录”?

最佳答案

只需用新 key 替换您的 key :

files["path"] = files.delete("dir")

delete 返回已删除的值,因此您实际上是将 位于 files['dir'] 的内容移动到 files ['路径']

Ruby 中没有神奇的方法可以为您的两个数组自动执行此过程;你必须遍历第一个,找到第二个中的值,然后执行上面的 delete 操作:

files1.each do |key,value|
if old_key = files2.key(value)
files2[key] = files2.delete(old_key)
end
end

如果键已经在第二个数组中,这有可能覆盖值。如果您确定 files1 中的每个值也在 files2 中,您可以跳过 if 语句并简单地使用 files2[key] = files2.delete( files2.find(value)) 在循环内。

关于ruby-on-rails - 从另一个哈希创建一个哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com