2017-10-17 84 views
0

我需要比較Rails中的兩個數組,但我需要忽略大小寫。 我想比較標題數組與預期的標題數組。比較導軌忽略情況下的2個數組

helper_method :check_header 
    def check_header(expected_header,csv_file) 
     header = CSV.open(csv_file, 'r') { |csv| csv.first } 
     valid_csv = true 
     if header != expected_header 
      $csv_error = "Header:<br> #{header} <br> Expected Header: <br> #{expected_header} " 
      valid_csv = false 
     end 
     return valid_csv 
    end 

我試過.downcase,但那隻適用於字符串,不適用於數組。是否有類似的數組運算符,還是必須遍歷數組的元素?

+0

[在Ruby中比較兩個數組](https://stackoverflow.com/questions/9095017/comparing-two-arrays-in-ruby) –

+0

[在Ruby中比較兩個數組](https:// stackoverflow的.com /問題/ 9095017 /比較二個陣列合紅寶石) –

回答

0

如果你想downcase一個數組的成員,你可以這樣做是這樣的:

> ary = ["A", "B", "C"] 
=> ["A", "B", "C"] 

> ary.map(&:downcase) 
=> ["a", "b", "c"] 

所以,如果你想知道字符串的兩個數組是否相同可達情況下,你可以這樣做:

ary1.map(&:downcase) == ary2.map(&:downcase) 

請注意,這仍然是數組比較,所以順序很重要。