在数组中搜索值

时间:2019-05-14 04:14:09

标签: ruby

我正在尝试在数组中搜索一个值,如果找到该值,则返回找到该值以及找到该值的索引。如果找不到该值,则返回的索引为-1

array = [1, 2, 3]
search_value = gets.chomp
array.map.include?(search_value) || -1

if index != -1
puts "Found " + search_value + " at " + index.to_s

期望的结果是Found 2 at 1而不是我收到的Found 2 at True,我知道为什么会这样,但是我不知道如何解决

3 个答案:

答案 0 :(得分:2)

您只需使用array.index(element)

示例:

array = [1, 2, 3, 4, 5]
array.index(5) || -1 # returns 4 (because 5 is at 4th index)
array.index(6) || -1 # returns -1 

答案 1 :(得分:1)

您正在寻找Array#index,如果该值不属于数组的一部分,则返回nil

要在找不到该值时返回-1

index = array.index(search_value) || -1

答案 2 :(得分:0)

array = ["1", "2", "3"]
search_value = gets.chomp
index = array.index(search_value) || -1
puts "Found " + search_value + " at " + index.to_s
// Type 2
// Expected output: Found 2 at 1

我不知道为什么array = [1, 2, 3]不能正常工作,但是我尝试使用array = ["1", "2", "3"]来工作。希望有人能解释一下。