Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 通过数组的内容获取数组的元素_Ruby_Arrays - Fatal编程技术网

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"