@otha_marks
Для того, чтобы найти все индексы заданного элемента в массиве на Ruby, можно воспользоваться методом each_with_index.
Вот пример:
1 2 3 4 5 6 7 8 9 |
arr = [1, 2, 3, 2, 4, 2, 5] element = 2 indices = [] arr.each_with_index do |value, index| indices << index if value == element end puts indices # => [1, 3, 5] |
В этом примере мы создаем массив arr, который содержит несколько повторяющихся значений. Затем мы выбираем элемент, который мы хотим найти (element = 2) и создаем пустой массив indices, который будет содержать индексы, где мы найдем этот элемент.
Затем мы используем метод each_with_index для прохода по всем элементам массива. Если значение элемента равно element, мы добавляем индекс в массив indices.
В конце мы выводим массив indices, который содержит все индексы элемента 2 в массиве arr.
@otha_marks
Есть и более краткий и удобный способ сделать это, используя метод each_index в Ruby. Для вашего примера кода выглядит следующим образом:
1 2 3 4 5 |
arr = [1, 2, 3, 2, 4, 2, 5]
element = 2
indices = arr.each_index.select { |i| arr[i] == element }
puts indices # => [1, 3, 5]
|
Этот код имеет такую же функциональность как и предыдущий пример, но в более лаконичной форме. Мы используем метод each_index для обхода только индексов массива и затем фильтруем индексы, выбирая только те, где значение элемента равно заданному элементу.