如何打印没有括号或引号的数组元素?

时间:2011-12-10 03:45:36

标签: ruby nokogiri

这让我发疯了。我基本上试图检查saved_category_parent是否匹配parsed_category_parent

它说saved_category_parent属于类Array,而parsed_category_parent(用nokogiri抓取)表示它是一个字符串。

因此,当我尝试检查以下内容时,它总是返回false,因为它将第一个 [“first”]进行比较

我只需要删除愚蠢的括号。我试过to_s,它实际上使它变得更糟......它增加了更多括号和更多括号。

if saved_category_parent == parsed_category_parent && saved_category == parsed_category
    //code
end

继承我的其他代码

categories = ["#first > sub-cat", "#second > sub-cat-2"]

# Parse through saved categories and break them up

categories.each do |category|
  saved_category_parent = category.scan(/#([^ ]*)/)[0]
  saved_category        = category.scan(/.* > (.*)$/)[0]

  @rss = Nokogiri::HTML(open(open(link.get_attribute('href'))))

  @rss.css('.col').each do |forumblock|
    parsed_category_parent = forumblock.css('h4 a').inner_text
    forumblock.css('li a').each do |forumlink|
      parsed_category = forumlink.content

      # p saved_category_parent
      # p parsed_category_parent
      # p saved_category
      # p parsed_category

      p saved_category_parent
      p saved_category



    end
  end
end

2 个答案:

答案 0 :(得分:1)

如果你的数组只有一个元素,你可以这样做:

# creating the values manually for the example
parsed_category_parent = "first"
saved_category_parent = ["first"]

# solution
parsed_category_parent = saved_category_parent[0]

您可以在IRB中尝试查看它是否有效。

通过使用[]运算符,您将访问数组的第一个字符串元素,从而将两个字符串进行比较,而不是将字符串与包含字符串的数组进行比较。

您还可以使用其他方法访问数组中的元素,如“first”。

答案 1 :(得分:0)

使用Array#first获取数组的第一个(或唯一)元素:

irb> ["first"].first
  => "first"