Ruby 通过数组的内容获取数组的元素
我很抱歉措辞怪异。我不知道你怎么称呼这个。我有这个阵列:Ruby 通过数组的内容获取数组的元素,ruby,arrays,Ruby,Arrays,我很抱歉措辞怪异。我不知道你怎么称呼这个。我有这个阵列: [#<Item:0x007faeea066508 @name="Backpack", @exam="Not much here... just a backpack">] [#] 这是一个清单数组。用户将键入类似“检查背包”的内容,并返回元素的@exam。你怎么才能得到只知道@name的元素?谢谢 您可能希望使用块进行选择(假设您的项目类响应.name和.exam: items = [#<Item:0x007faee
[#<Item:0x007faeea066508 @name="Backpack", @exam="Not much here... just a backpack">]
[#]
这是一个清单数组。用户将键入类似“检查背包”的内容,并返回元素的@exam。你怎么才能得到只知道@name的元素?谢谢 您可能希望使用块进行选择(假设您的项目类响应.name和.exam:
items = [#<Item:0x007faeea066508 @name="Backpack", @exam="Not much here... just a backpack">]
item = items.select {|i| i.name =~ /backpack/i }
puts item.exam
items=[#]
item=items.select{| i | i.name=~/backpack/i}
考试
这是我的代码:
articles = ArticleType.all
我的结果是:
[#<ArticleType id: 1, name: "News", slug: "news">, #<ArticleType id: 2, name: "Articles", slug: "articles">]
要获取数组的名称值,请执行以下操作:
ArticleType.all.map(&:name)
要获取包含“N”的元素,请执行以下操作:
ArticleType.all.map { |x| puts x.name if x.name.include?('N') }
=> News
我希望它对您有所帮助!您可以按以下方式执行此操作:--
user\u typed\u string=“检查背包”
项目=[#]
item=items.select{| i | user_typed_string.include?(i.name)}.last
检查=item.exam,除非item.nil?
这就是您拥有的:
class Item
# accessors for @name and @exam possibly defined here
def initialize(name, exam)
@name = name
@exam = exam
end
# methods possibly defined here
end
item = Item.new("Backpack", "Just a backpack")
#=> #<Item:0x0000010201dda0 @name="Backpack", @exam="Just a backpack">
您可以使用来检索实例变量@name
和@exam
的值,我将它们存储在局部变量name
和exam
中:
name = a.first.instance_variable_get(:@name) #=> "Backpack"
exam = a.first.instance_variable_get(:@exam) #=> "Just a backpack"
现在您已经有了这些变量的值,您可以随意使用它们。如果读者对这个数组感到困惑,那么它只包含一个元素:类
项的一个实例。
class Item
# accessors for @name and @exam possibly defined here
def initialize(name, exam)
@name = name
@exam = exam
end
# methods possibly defined here
end
item = Item.new("Backpack", "Just a backpack")
#=> #<Item:0x0000010201dda0 @name="Backpack", @exam="Just a backpack">
a = [item]
#=> [#<Item:0x0000010201dda0 @name="Backpack", @exam="Just a backpack">]
name = a.first.instance_variable_get(:@name) #=> "Backpack"
exam = a.first.instance_variable_get(:@exam) #=> "Just a backpack"