加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby基于key => value从数组中删除重复项

发布时间:2020-12-17 04:26:08 所属栏目:百科 来源:网络整理
导读:我有一系列音乐曲目,在这个阵列中,由于在多张专辑中发行,同一首歌可以多次显示.我试图从数组中删除它们,以便只在列表中显示真正的唯一. 哈希看起来像这样: "tracks" = [ [0] { "id" = 1,"Title" = "Intergalactic","ArtistName" = "Beastie Boys" },[1] { "
我有一系列音乐曲目,在这个阵列中,由于在多张专辑中发行,同一首歌可以多次显示.我试图从数组中删除它们,以便只在列表中显示真正的唯一.

哈希看起来像这样:

"tracks" => [
    [0] {
        "id" => 1,"Title" => "Intergalactic","ArtistName" => "Beastie Boys"
    },[1] {
        "id" => 2,"ArtistName" => "Beastie Boys"
    }
]

我需要一种方法来删除基于Title键的重复项.无论如何这样做?

解决方法

如果您使用的是ActiveSupport,则可以使用uniq_by,如下所示:
tracks.uniq_by {|track| track["title"]}

如果没有,那么您可以自己轻松实现它. See this.

# File activesupport/lib/active_support/core_ext/array/uniq_by.rb,line 6
  def uniq_by
    hash,array = {},[]
    each { |i| hash[yield(i)] ||= (array << i) }
    array
  end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读