"name1", :val => 10}, {:cod => "0001", :name => "name-6ren">
gpt4 book ai didi

ruby - 如果记录重复且总和值为 :val,如何删除记录

转载 作者:数据小太阳 更新时间:2023-10-29 08:28:21 26 4
gpt4 key购买 nike

给定以下哈希数组:

list=[
{:cod => "0001", :name => "name1", :val => 10},
{:cod => "0001", :name => "name1", :val => 12},
{:cod => "0002", :name => "name2", :val => 13},
{:cod => "0002", :name => "name2", :val => 14},
{:cod => "0002", :name => "name2", :val => 14},
{:cod => "0004", :name => "name4", :val => 16},
{:cod => "0004", :name => "name4", :val => 16},
{:cod => "0004", :name => "name4", :val => 17},
{:cod => "0005", :name => "name5", :val => 17},
{:cod => "0005", :name => "name5", :val => 17},
{:cod => "0005", :name => "name5", :val => 17},
{:cod => "0006", :name => "name6", :val => 110},
{:cod => "0006", :name => "name6", :val => 10},
]

如何删除重复的记录?

此外,如何使用键 :val 找到值的总和?

最佳答案

您可以将一个 block 传递给 Array 的方法 unique 以确定唯一性。

list.uniq { |h| h[:val] }

=> [{:cod=>"0001", :name=>"name1", :val=>10},
{:cod=>"0001", :name=>"name1", :val=>12},
{:cod=>"0002", :name=>"name2", :val=>13},
{:cod=>"0002", :name=>"name2", :val=>14},
{:cod=>"0004", :name=>"name4", :val=>16},
{:cod=>"0004", :name=>"name4", :val=>17},
{:cod=>"0006", :name=>"name6", :val=>110}]

关于ruby - 如果记录重复且总和值为 :val,如何删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11761788/

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