在数组中找不到字符串值

时间:2018-07-19 06:48:57

标签: arrays ruby

我无法检查某些东西是否为字符串。

我有这个数组:

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 ==“ Districts”时,我看不到任何希望中止代码的动作。我需要比较我的第一个数组。

1 个答案:

答案 0 :(得分:2)

虽然有一个符号数组,但您正在将其与字符串进行比较。将元素转换为字符串seal::Ciphertext variable即可。

seal::Ciphertext

注意:上面的代码仅将(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