Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 删除在同一索引处具有重复值的子阵列_Ruby On Rails_Arrays_Ruby_Duplicates - Fatal编程技术网

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)