【问题标题】:How to add up the number representations of the objects of the hashes in an array of hashes?如何将散列数组中散列对象的数字表示相加?
【发布时间】:2014-04-24 02:58:17
【问题描述】:

散列数组,如

  [{color: "red", size: "large"},{color: "blue", size: "small"},{color: purple, size: "medium"},{color: "pink", size: "small"}]

还有另一个哈希:

  {small: 1, medium: 2, large: 3, x_large: 4}

如何将所有尺寸替换为各自的数字并将这些数字相加?

可以通过将数字替换为如下大小来手动解决问题:

 [{color: "red", size: 3},{color: "blue", size: 1},{color: purple, size: 2},{color: "pink", size: 1}]

然后将它们相加,大小的数字表示将输出:7

【问题讨论】:

  • 请给我们您的预期输出。您提供的两个输入似乎完全不相关,无法说出您希望如何组合它们。
  • 我编辑了问题以显示我将如何手动回答问题。您还想了解其他信息吗?

标签: ruby-on-rails ruby


【解决方案1】:

遍历您的第一个数组,将 :size 替换为第二个数组中的腐蚀大小:

arr = [{color: "red", size: "large"},{color: "blue", size: "small"},{color: "purple", size: "medium"},{color: "pink", size: "small"}]

sizes =   {small: 1, medium: 2, large: 3, x_large: 4}


arr.each do |x|
  x[:size] = sizes[x[:size].to_sym]
end

【讨论】:

  • 我确信他们在编写真实代码时重视结果,我同样确信 test 并不是为了让您复制粘贴而给出的进入互联网并将顶级解决方案作为您自己的解决方案。至于使用 map/inject 使其“​​更加 ruby​​esque”是“您的想法”,您显然不知道非 ruby​​esque 代码中的 ruby​​esque 代码。
猜你喜欢
  • 2020-07-08
  • 2023-04-10
  • 2016-07-15
  • 1970-01-01
  • 2015-06-12
  • 2016-08-03
  • 2015-04-21
  • 2018-08-07
  • 1970-01-01
相关资源
最近更新 更多