编辑:现在全部修复。初学者错了,但我觉得我的初学者水平已经很好了。但是我没记得要检查的最基本的东西。
我正在尝试在数组中找到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”(上面的代码)并获取其位置。如何获取位置信息,将其放入一个整数,以便我可以应用数学。然后获取新数组?
此外,如果要搜索的值可以在此索引之外进行控制,那也是最佳选择。如何使索引指向包含要搜索的内容的字符串?
谢谢,抱歉,我对编程完全陌生。到目前为止,我做得很好。
答案 0 :(得分: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
答案 1 :(得分: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
获取'next'元素,例如获得'b'之后的下一个1元素:
a[a.index("b")+1]
=> "c"
oucrse“c”位于第2位(数组的零编号),你可以看到
a.index(a[a.index("b")+1])
=> 2