7

我有一个数组:

a = ["http://design.example.com", "http://www.domcx.com", "http://subr.com"]

然后如果该数组中的一个元素与字符串匹配,我想返回 true:

s = "example.com"

我尝试使用include?and any?

a.include? s
a.any?{|w| s=~ /#{w}/}

我不知道如何在这里使用它。有什么建议么?

4

2 回答 2

6

你可以any?像这样使用:

[
  "http://design.example.com",
  "http://www.domcx.com",
  "http://subr.com"
].any?{ |s| s['example.com'] }

替换你的变量名:

a = [
  "http://design.example.com",
  "http://www.domcx.com",
  "http://subr.com"
]
s = "example.com"
a.any?{ |i| i[s] }

您也可以通过其他几种方式来执行此操作,但使用的优点any?是一旦您受到打击就会停止,因此如果该打击出现在列表的早期,它会快得多。

于 2013-04-10T14:48:56.547 回答
2

下面的情况如何:

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "sus"
p a.any? { |w| w.include? s } #=> false

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "design.example"
p a.any? { |w| w.include? s } #=>true

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "desingn.example"
p a.any? { |w| w.include? s } #=>false

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "example"
p a.any? { |w| w.include? s } #=>true

a=["http://design.example.com", "http://www.domcx.com", "http://subr.com"]
s= "example.com"
p a.any? { |w| w.include? s } #=>true
于 2013-04-10T14:48:36.687 回答