arrays - 如何在 Ruby 中迭代哈希数组并返回字符串中特定键的所有值

标签 arrays ruby enumerable

我目前正在尝试迭代哈希数组,并返回字符串中“name”键的所有值。这是数组:

foods = 

  [
    { name: 'Dan Dan Noodles', cuisine: 'Sichuan', heat_level: 8 },
    { name: 'Nashville Hot Chicken', cuisine: 'American', heat_level: 7 },
    { name: 'Panang Curry', cuisine: 'Thai', heat_level: 4 },
  ]

这就是我目前正在做的事情,我不完全确定为什么它不起作用!

  foods.each do |food|
    food.each do |k, v|
      if food == :name
        "#{v}"
      end
    end
  end

提前致谢。

最佳答案

您可以使用 Enumerable#map 来实现此目的:

p foods.map { |f| f[:name] }

您尝试使用的代码没有产生任何输出或创建任何对象,并且没有必要使用第二个循环来访问哈希的单个元素。

关于arrays - 如何在 Ruby 中迭代哈希数组并返回字符串中特定键的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70358446/

相关文章:

ruby - stub HTTP 请求的目的是什么(例如使用 WebMock gem)?

arrays - 为什么在Elixir中无法枚举元组?

Java,如果条件为假,则重复If语句

c# - 将 IList<T> 转换为 T[] 类型的数组会导致枚举吗?

javascript - 计算 JavaScript 对象中的属性数量

c# - 自定义可枚举/集合何时有用?

ruby - 在 Rails 3 中扩展 Enumerable

arrays - 使用数组内容时 Swift nil 合并

javascript - Node.js 中的对象构造函数列表

ruby - rubocop 缩进多行赋值规则