代码之家  ›  专栏  ›  技术社区  ›  Nilay Singh

在数组[closed]中找不到字符串值

  •  -3
  • Nilay Singh  · 技术社区  · 6 年前

    我无法检查是否有字符串。

    我有这个数组:

    ji1 = [:Districts,:Winter_Rain, :Hot_Weather_Rain, :South_West_Monsoon, :North_West_Monsoon, :Total]
    

    我正在尝试使用以下代码映射此数组:

    hash_data = ji1.map do |el|
      {title:el, field:el, sorter:"string", editor:true}
    end
    

    这很有效,但是当我使用这个数组时:

    ji1 = ["Districts",:Winter_Rain, :Hot_Weather_Rain, :South_West_Monsoon, :North_West_Monsoon, :Total]
    

    有了这个密码,

    hash_data = ji1.map do |el|
      hash_data = ji.map do |el|
        if el == "Districts"
          abort(el)
        else
          puts el
        end
        {title:el, field:el, sorter:"string", editor:true}
      end
    

    当我使用上面的代码时,我看不到当el==“地区”时我期望中止的任何操作。我需要比较我的第一个数组。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Deepak Mahakale    6 年前

    当您有一个符号数组时,您将它与字符串进行比较将元素转换为字符串 (el.to_s == "Districts") 会有用的。

    ji1 = [
      :Districts, :Winter_Rain, :Hot_Weather_Rain, :South_West_Monsoon,
      :North_West_Monsoon, :Total
    ]
    
    hash_data = ji1.map do |el|
      if el.to_s == "Districts"
        abort(el)
      else
        puts el
      end
      { title:el, field:el, sorter:"string", editor:true }
    end
    

    注意:以上代码只转换 el 用于比较的字符串。如果你想要的话 String 在返回值中,您可能要更改 埃尔 循环本身

    这样地:

    hash_data = ji1.map do |el|
      el = el.to_s
      ...
      ...
    end