0

编辑:现在全部修复。初学者的错误,但我认为我的故障排除对于我的初学者水平来说已经足够好了。但是我不记得要检查的最基本的事情。

我试图在数组中找到 X 的位置。根据一个网站,它应该像这样工作:

a = [ "a", "b", "c" , "d"]

a.index("d")

但是,这不会自行返回任何内容。但是我添加了一个 if 语句:

a = [ "a", "b", "c" , "d"]

if a.index("d") == 3
  puts "ok"

else 

puts "error"

end

这有效。然而,显然这不是最优的,因为我不会在 4 个数组元素之间猜测,而是在数千个元素之间进行猜测。第一个代码应该工作吗?如果不是,我如何获得数组编号?

第二个问题:在搜索这个值“d”(上面的代码)并得到它的位置之后。如何获取位置信息,将其放入一个整数中,以便对其应用数学运算。然后获取新数组?

此外,如果可以在此索引之外控制正在搜索的值,那也是最好的。如何使索引指向包含要搜索的内容的字符串?

谢谢和抱歉,我对编程完全陌生。到目前为止,我做得很好。

4

2 回答 2

3

a.index("d")将偏移量返回到数组中:

a = [ "a", "b", "c" , "d"]
a.index("d") # => 3

请记住,数组索引从 0 开始,而不是 1,因此"d"从索引 3 开始,而不是 4。

target_index = a.index("d")
puts target_index
# >> 3
于 2012-08-14T03:53:21.973 回答
0

这个对我有用。

您使用的是什么 ruby​​ 版本(ruby -v)。

我的代码(使用 ruby​​ 1.9.3):

$ irb
1.9.3-p125 :001 > a = [ "a", "b", "c" , "d"]  => ["a", "b", "c", "d"] 
1.9.3-p125 :002 > a.index("d")  => 3

获取“下一个”元素,例如获取“b”之后的下一个 1 元素:

a[a.index("b")+1]

=> "c" 

如您所见,oucrse "c" 位于位置 2(数组从零开始编号)

a.index(a[a.index("b")+1])
=> 2
于 2012-08-14T03:55:15.380 回答