ruby-on-rails - 如何从ruby中的哈希数组更改哈希键?
问题描述
鉴于:
data = [
{"votable_id"=>1150, "user_ids"=>"1,2,3,4,5,6,"},
{"votable_id"=>1151, "user_ids"=>"55,66,34,23,56,7,8"}
]
这是预期的结果。数组应该有前 5 个元素。
data = [
{"votable_id"=>1150, "user_ids"=>["1","2","3","4","5"]},
{"votable_id"=>1151, "user_ids"=>["55","66","34","23","56","7",8"]}
]
这是我尝试过的:
data.map{|x| x['user_ids'] = x['user_ids'].split(',').first(5)}
还有其他优化的解决方案吗?
解决方案
你也可以使用.map
和.tap
喜欢这个
data.map do |h|
h.tap { |m_h| m_h["user_ids"]= m_h["user_ids"].split(',').first(5)}
end
推荐阅读
- mongoose - 仅在超测的一项测试中连接 ECONNREFUSED 127.0.0.1:80 错误
- flutter - 如何使非固定大小的父行/列填满整个空间
- java - Javadoc 未生成 -- doc 文件夹
- php - 如何在 PHP 中用未组织的数组元素组织 CSV 数据?
- ios - 无法让我的“保存”按钮工作,我的按钮在按下时什么也不做
- amazon-web-services - 用于 ECS 服务更新的 CloudWatch 事件规则和 SNS
- django-rest-framework - 序列化器的更新方法只创建不更新(Django rest框架)
- azure - Azure B2C 自定义策略 - api.localaccountsignup - 只有部分字段会自动翻译
- ios - 无法将带有 App Clip 目标的二进制文件上传到 App Store - 错误 ITMS-90834
- c++ - 在 C++ 中检查字符串是否为“null”