Поиск в массиве для значения - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь найти в массиве значение, если это значение найдено, то возвращаем, что значение найдено и индекс, по которому оно было найдено.Если значение не найдено, возвращается индекс -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 ]

2 голосов
/ 14 мая 2019

Вы можете просто использовать 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 голос
/ 14 мая 2019

Вы ищете Array#index, который возвращает nil в случае, если значение не является частью массива.

Для возврата -1, когда значение не найдено:

index = array.index(search_value) || -1
0 голосов
/ 14 мая 2019
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"] вместо этого, он работает. Надеюсь, что кто-нибудь немного объяснит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...