gpt4 book ai didi

ruby - 如何根据嵌套值从数组数组中删除重复条目?

转载 作者:行者123 更新时间:2023-12-05 02:35:18 25 4
gpt4 key购买 nike

我有一个数组数组,其中也包含散列值,并且该数组具有我想要删除的重复数组。下面是一个例子:

[[“John, Doe“, "/manager/consumer/123456?status=1", {:data=>{:id=>123456},  :class=>""}],
[“Jane, smith“, "/manager/consumer/7891011?status=1", {:data=>{:id=>7891011}, :class=>""}],
[“William, Smith”, "/manager/consumer/12131415?status=1", {:data=>{:id=>1211415}, :class=>""}],
[“John, Doe“, "/manager/consumer/123456?status=1", {:data=>{:id=>123456}, :class=>""}]]

正如我们所看到的,有两个相同的数组(第一个和最后一个),我想根据数组内散列中存在的 :id 删除重复的数组?

最佳答案

使用uniq方法! ( ruby >= 1.9.2)

array = [
["John, Doe", "/manager/consumer/123456?status=1", {:data=>{:id=>123456}, :class=>""}],
["Jane, smith", "/manager/consumer/7891011?status=1", {:data=>{:id=>7891011}, :class=>""}],
["William, Smith", "/manager/consumer/12131415?status=1", {:data=>{:id=>1211415}, :class=>""}],
["John, Doe", "/manager/consumer/123456?status=1", {:data=>{:id=>123456}, :class=>""}]
]

array.uniq { |_name, _url, hash| hash[:data][:id] }

如果 id 重复,它将删除除第一个条目以外的所有条目,因此您需要考虑 id 相同但其余数据不同的情况。

注意:如果您出于某种原因在 1.9.2 之前的 ruby​​ 上运行,则 uniq 将忽略该 block 。出于这个原因,ActiveSupport 有 uniq_by 方法(在 4.0.2 版中被删除)。

关于ruby - 如何根据嵌套值从数组数组中删除重复条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70606013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com