arrays - 如何将哈希数组组合成一个数组?
问题描述
我正在尝试组合这样的哈希数组:
[{:locale=>:"en-US", :key=>:key1},
{:locale=>:"en-US", :key=>:key2},
{:locale=>:da, :key=>:key1}]
像这样进入一个数组:
['locale', 'en-US', 'key', 'key1',
'locale', 'en-US', 'key', 'key2',
'locale', 'da', 'key', 'key1']
我怎样才能做到这一点?
解决方案
Input
a=[{:locale=>:"en-US", :key=>:key1}, {:locale=>:"en-US", :key=>:key2}, {:locale=>:da, :key=>:key1}]
Code
result=a.map do |h|
h.map do|k,v|
[k,v]
end
end.flatten
p result
Or
p a.flat_map(&:to_a).flatten
Output
[:locale, :"en-US", :key, :key1, :locale, :"en-US", :key, :key2, :locale, :da, :key, :key1]
推荐阅读
- amazon-web-services - EC2 和 S3 之间的数据传输是通过公共互联网还是在 AWS 网络内部传输?
- python - Python 添加货币符号 ipywidgets FloatText
- reactjs - 我应该如何改进 React 中的这种行为?
- ios - 麦克风状态不消失ios
- c# - 我在 Visual Studio 中收到一个 SqlException,将数字数据转换为数字 //ASP.NET 项目(第二次上传)
- qt - 如何防止伽马射线?
- ios - 如何从 iOS 将视频投射到三星 SmartTV
- java - OpenAPI 3 中是否已弃用模式验证?
- javascript - 反应只听第一个状态变化
- javascript - 如何从计算属性中使用 v-for?