arrays - 如何从数组中提取键
问题描述
我有一组标签
[
{"1boy": 0.9390615820884703},
{"solo": 0.9158311486244202},
{"male": 0.6592671275138855},
{"black hair": 0.4281844198703766},
]
如何从这个哈希数组中提取字符串,以便它们显示为列表:
- 1男孩
- 独奏
- 男性
- 黑发
解决方案
正如 SimpleLime 在评论中发布的那样,最优雅的方式是使用flat_map
.
.flat_map(&:keys)
在您的问题中,您将键称为“字符串”,但在您的示例中,它们是符号。您用于哈希的语法是将您的“字符串”转换为符号。
"1boy": 0.9390615820884703
这使得 key 的符号看起来像一个字符串,但不是。Ruby 允许使用字符串创建符号,这对于使用通常不允许的字符(例如标点符号或空格)创建符号很有用。
:"some string?!".class
=> Symbol
如果您真的想要键的字符串,则必须使用带有=>
运算符的“旧”语法:
"1boy" => 0.9390615820884703
因此,要返回实际的字符串,您还需要转换它们。一种可能的方法是:
.flat_map(&:keys).map(&:to_s)
推荐阅读
- javascript - 从滑块获取数据到 JavaScript 函数
- python - NoSuchElementException 与 uiautomator2
- python - 从 json 文件生成 Python 字符串
- node.js - 如何在运行的 node.js 应用程序上从命令行发出事件
- google-cloud-firestore - Angular firestore this.userCol.snapshotChanges() 不工作
- angular - 如何针对本质上是动态的 JSON 创建 Angular FORM?
- angular - Angular 6 HTTP拦截器未设置标头
- java - 如何使用 Xpath java 更新空节点值?
- excel - 键入 Excel VBA 时筛选组合框列表
- java - 无法导入导入 android.support.v7.widget.RecyclerView;