我有一个标签数组
[
{"1boy": 0.9390615820884703},
{"solo": 0.9158311486244202},
{"male": 0.6592671275138855},
{"black hair": 0.4281844198703766},
]
如何从此哈希数组中提取字符串,以使其显示为列表:
答案 0 :(得分:0)
如SimpleLime在评论中所述,最优雅的方法是使用flat_map
。
.flat_map(&:keys)
在您的问题中,您将键称为“字符串”,但在您的示例中,它们是符号。您用于哈希的语法会将“字符串”转换为符号。
"1boy": 0.9390615820884703
这使键的符号看起来像字符串,但不是。 Ruby允许使用字符串来创建符号,这对于创建带有通常不允许使用的字符(例如标点符号或空格)的符号很有用。
:"some string?!".class
=> Symbol
如果您确实想要按键的字符串,则必须使用=>
运算符使用“旧”语法:
"1boy" => 0.9390615820884703
因此,要返回实际的字符串,您还需要对其进行转换。一种可能的方式是:
.flat_map(&:keys).map(&:to_s)
答案 1 :(得分:0)
如果您没有嵌套结构或只需要第一级的键:
.map{ |h| h.keys.first.to_s }