ruby-on-rails – 从另一个哈希创建哈希
发布时间:2020-12-17 02:44:29 所属栏目:百科 来源:网络整理
导读:我目前正在处理包含常见值的两个不同的哈希,我想规范化哈希键名称. 哈希#1看起来像: files = [{ "filename" = "file.txt","path" = "/folder/file.txt" }] Hash#2看起来像: files = [{ "file" = "file.txt","dir" = "/folder/file.txt" }] 有没有办法循环
我目前正在处理包含常见值的两个不同的哈希,我想规范化哈希键名称.
哈希#1看起来像: files = [{ "filename" => "file.txt","path" => "/folder/file.txt" }] Hash#2看起来像: files = [{ "file" => "file.txt","dir" => "/folder/file.txt" }] 有没有办法循环哈希#2并创建一个新的哈希,所以键是“文件名”和“路径”而不是“文件”和“目录”? 解决方法
只需用新密钥替换您的密钥:
files["path"] = files.delete("dir") delete返回已删除的值,因此您可以有效地将文件[‘dir’]中的内容移动到文件[‘path’]. Ruby中没有神奇的方法来为你的两个数组自动化这个过程;你必须遍历第一个,在第二个中找到值,然后执行上面的删除操作: 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)). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |