У меня есть массив, заполненный 0, 1, 3 и 4, и вы хотите проверить внутри массива, так что, если определенное количество из них найдено, утверждение становится ложным.Поиск в массиве ruby
ответ
Используйте метод count
.
alist.count(4) >= n
# => true or false
n
будет определенный номер, который вы хотите проверить.
документация является лучшим местом, чтобы начать отвечать на такие вопросы, рубин имеет очень богатый набор функций на Array и Enumerable
def enough_4s?(array, how_many)
array.count(4) >= how_many
end
array = [1,1,1,2,3,4,4,4]
enough_4s?(array, 3)
#=> true
enough_4s?(array, 4)
#=> false
[0,1,3,4,3].count(4) > 2 => false
(например, 2 является ожидаемый счет)
Если цель состоит в немедленном порядке stop поиск по местоположению достаточно 4 с, используйте each
или find
или эквивалент, и return
или break
, а не count
. Например:
n = 2
([0,1,3,4]*5).find do |i|
n -= 1 if i == 4
break false if n == 0
end
# false
'return' здесь не годится (' LocalJumpError: неожиданный возврат') –
@UriAgassi: В примере, который я написал, не используется 'return'. Он использует 'break'. Один с «каждым» мог бы сделать то же самое. Один с «map» тоже был бы похож (не забудьте вернуть «i» в этом случае, иначе вы получите массив «nil».) –
Вы говорите в своем объяснении «... и' return' или 'break'" - 'return' не будет работать ... –
Другое решение, которое прекращается, как только он может основан на использовании any?
:
def has_at_least?(arr, val, min)
arr.any? do |i|
i == val && (min -= 1).zero?
end
end
has_at_least?([0,1,3,4]*5, 4, 2)
# => true
has_at_least?([0,1,3,4]*5, 4, 7)
# => false
- 1. ruby поиск в массиве
- 2. Поиск похожих значений в хэш-массиве в Ruby
- 3. Поиск длины всех строк в массиве в Ruby
- 4. Поиск суммы каждой комбинации двух чисел в массиве в Ruby
- 5. Поиск индекса значения в массиве
- 6. Ruby: Поиск самого низкого свободного ID в массиве ID
- 7. Regex ruby - поиск строк в массиве и их удаление
- 8. массив в массиве ruby
- 9. Аргументы в массиве Ruby?
- 10. Значения в массиве Ruby
- 11. Сумма в массиве Ruby
- 12. PHP поиск письмо в массиве в массиве
- 13. Поиск NSString в массиве в массивном массиве
- 14. Поиск значения в массиве
- 15. MongoDB: Поиск в массиве
- 16. Поиск Drupal в массиве
- 17. Поиск в многомерном массиве
- 18. Поиск значений в массиве
- 19. Бинарный поиск в массиве
- 20. Mongoose: поиск в массиве
- 21. Elasticsearch: поиск в массиве
- 22. Поиск числа в массиве
- 23. Поиск эвенов в массиве
- 24. Поиск в массиве Javascript
- 25. Поиск в массиве
- 26. Поиск объекта в массиве
- 27. Поиск дубликатов в массиве
- 28. Поиск номер в массиве
- 29. Бинарный поиск в массиве
- 30. Поиск числа в массиве
так '.Count (4)> x' короче я не вижу необходимо для дополнительной функции –
, потому что он документирует намерение – errm