ruby - 如何找到多维数组的 .index

标签 ruby

尝试了网络资源,但没有任何运气和我的可视化快速入门指南。

如果我有二维/多维数组:

 array = [['x', 'x',' x','x'],
         ['x', 'S',' ','x'],
         ['x', 'x',' x','x']]

   print array.index('S')

   it returns nil

然后我去输入:

 array = ['x', 'S',' ','x']
 print array.index('S')

它返回我正在寻找的值 1

我的第一个猜测是在 .index() 中调用错误,它需要两个参数,一个用于行和列?无论如何,如何使 .index 为多维数组工作?这是解决我的小迷宫问题的第一步

最佳答案

这样做就可以了:

array = [['x', 'x',' x','x'],
         ['x', 'S',' ','x'],
         ['x', 'x',' x','x']]

p array.index(array.detect{|aa| aa.include?('S')}) # prints 1

如果您还想在子数组中使用 'S' 索引,您可以:

row = array.detect{|aa| aa.include?('S')}
p [row.index('S'), array.index(row)] # prints [1,1]

关于ruby - 如何找到多维数组的 .index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1850756/

相关文章:

ruby - 如何使用正则表达式解析网页中的文章?

ruby - 如何仅在某些 LaTeX 命令参数的范围内进行替换?

ruby-on-rails - 如何通过 ruby​​ on Rails 模型向数据库赋予 null 值

ruby-on-rails - 如何使用 ActiveRecord 让一个表中的两列指向另一个表中的同一列?

ruby-on-rails - 如何在没有old_password的情况下重置ldap用户密码?使用 Net::Ldap gem 或 devise_ldap_authenticatable gem

ruby-on-rails - Rails url 助手在 namespace Controller 中不可用

ruby-on-rails - 在销毁相关模型更新之前,错误不会传播

ruby-on-rails - 如何验证用户名不以特定字符串开头?

ruby-on-rails - 如何干净地删除 rubinius?

java - 如何在 ruby​​ 中将 java.util.Date 格式化为 "MM/dd/yyyy"格式的日期?