比较两个数组在轨道中忽略大小写

时间:2017-10-17 19:31:58

标签: ruby-on-rails

我需要比较Rails中的两个数组,但我需要忽略大小写。 我试图比较标头数组与预期的标头数组。

  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但这只适用于字符串,而不是数组。是否有类似的数组运算符或我是否必须遍历数组的元素?

1 个答案:

答案 0 :(得分:0)

如果你想要对数组的成员进行downcase,你可以这样做:

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

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

因此,如果你想知道两个字符串数组是否完全相同,你可以这样做:

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

请注意,这仍然是数组比较,所以顺序很重要。