Ruby on rails 删除在同一索引处具有重复值的子阵列
我有一个多维数组,其中包含很多关于各种对象的信息。我希望删除除第一个实例以外的所有包含类似信息的阵列:Ruby on rails 删除在同一索引处具有重复值的子阵列,ruby-on-rails,arrays,ruby,duplicates,Ruby On Rails,Arrays,Ruby,Duplicates,我有一个多维数组,其中包含很多关于各种对象的信息。我希望删除除第一个实例以外的所有包含类似信息的阵列: multi_array = [ ["Nissan", "Altima", "tan", "2016", "80000"], ["Ford", "F-150", "silver", "2012", "
multi_array = [
["Nissan", "Altima", "tan", "2016", "80000"],
["Ford", "F-150", "silver", "2012", "120000"],
["Nissan", "Altima", "red", "2009", "50000"],
["Audi", "A4", "blue", "2014", "30000"]
]
在上面的示例中,我希望删除其中包含“Altima”实例的任何子阵列,以便得到以下结果:
fixed_multi_array = [
["Nissan", "Altima", "tan", "2016", "80000"],
["Ford", "F-150", "silver", "2012", "120000"],
["Audi", "A4", "blue", "2014", "30000"]
]
在ruby(或RubyonRails)中,最快的方法是什么
更新:
应该已经澄清了,我希望根据始终位于子数组相同位置的值来消除重复。所以,在上面的示例中,我总是希望仅对子数组位置1中的值进行重复数据消除。您可以使用:
还有一种方法可以做到这一点:
multi_array.group_by {|i| i[1]}.values.map(&:first)
什么构成“相似”信息?例如,由于
array\u a
有“80000”,其他子数组不能包含该值吗?这适用于前一个子数组中的任何值吗?抱歉,这是类似的信息,始终位于子数组的同一位置。因此,我正在寻找子阵列位置2的重复数据消除,因为它是Rails,所以您可以执行无点版本:multi\u array.uniq(&:second)
multi_array.group_by {|i| i[1]}.values.map(&:first)