arrays - Ruby - 如何删除哈希数组中的重复项?
问题描述
我在哈希数组中有一个哈希数组。我想根据内部数组的值删除重复项。
topics = [{"defense"=>
[{:id=>30,
:source=>"Hacker News",
:title=>
"China-based campaign breached satellite, defense companies: Symantec",
:link=>
"https://www.reuters.com/article/us-china-usa-cyber/china-based-campaign-breached-satellite-defense-companies-symantec-idUSKBN1JF2X0"}]},
{"companies"=>
[{:id=>30,
:source=>"Hacker News",
:title=>
"China-based campaign breached satellite, defense companies: Symantec",
:link=>
"https://www.reuters.com/article/us-china-usa-cyber/china-based-campaign-breached-satellite-defense-companies-symantec-idUSKBN1JF2X0"}]},
{"Symantec"=>
[{:id=>30,
:source=>"Hacker News",
:title=>
"China-based campaign breached satellite, defense companies: Symantec",
:link=>
"https://www.reuters.com/article/us-china-usa-cyber/china-based-campaign-breached-satellite-defense-companies-symantec-idUSKBN1JF2X0"}]}]
topics.uniq { |phrase, post| post }
puts topics
您可以在上面看到短语defense
、companies
和Symantec
每个都包含相同的数组。我怎样才能只保留包含一个相同数组的第一个哈希?
预期输出:
{"defense"=>
[{:id=>30,
:source=>"Hacker News",
:title=>
"China-based campaign breached satellite, defense companies: Symantec",
:link=>
"https://www.reuters.com/article/us-china-usa-cyber/china-based-campaign-breached-satellite-defense-companies-symantec-idUSKBN1JF2X0"}]}
注意:在上面的例子中,每个“短语”的内部数组只包含一个哈希,但在应用程序中它可以包含多个帖子。
解决方案
topics.invert.invert
将散列减少到每个唯一值的单个(任意选择)键。
推荐阅读
- php - 如何使用 PHP CURL 通过 URL 验证或保护数据?
- tensorflow - 使用 LSTM 从单元素序列中进行预测
- omnet++ - 我在向 OMNeT++ 中的模块发送/接收 2 条或更多消息时遇到问题
- unity3d - 使用单个 google play 帐户多次购买?
- swift - S4TF 中的 softmaxCrossEntropy
- python - Python 读取 pickle 协议 4 错误:STACK_GLOBAL 需要 str
- linux - 如何检测busybox上的文件类型
- mysql - 使用 MySQL 将度/分/秒转换为小数
- flutter - Flutter:更改 DropDownMenuItems 选择列表的背景颜色
- javascript - 将 `'react'` 替换为 `"react"` eslint(prettier/prettier)