Я использую Ruby 2.4. Если я хочу, чтобы найти первый не всухую элемент массива можно использоватьКак найти индекс первого элемента non-nil в массиве?
a.find { |x| !x.nil? }
но как найти индекс, где произошло, что первый элемент не-ноль?
Я использую Ruby 2.4. Если я хочу, чтобы найти первый не всухую элемент массива можно использоватьКак найти индекс первого элемента non-nil в массиве?
a.find { |x| !x.nil? }
но как найти индекс, где произошло, что первый элемент не-ноль?
Используйте либо методы index
, либо find_index
.
a.index { |x| !x.nil? }
Возвращает индекс первого объекта в арном таким образом, что объект является == в OBJ. Если вместо аргумента задан блок, возвращает индекс первого объекта, для которого блок возвращает true. Возвращает nil, если совпадение не найдено.
https://ruby-doc.org/core-2.2.0/Array.html#method-i-find_index
Pro Типп, вы можете использовать methodsolver
драгоценный камень, чтобы найти способы, как что
solve { [nil,7,7,nil,nil,nil].___ { |x| !x.nil? } == 1 }
гравюр
Found 2 methods for #___
- Array#find_index
- Array#index
Метод решатель выполняет полный перебор по всем методы в классе приемника и возвращает те, где блок оценивает значение true. Он прилагает все усилия, чтобы избежать опасных методов, но лучше использовать с осторожностью на занятиях, которые могут вызвать опасные побочные эффекты.
Пожалуйста, прочтите «[mcve]». При запросе нам нужны образцы входных данных, которые демонстрируют проблему. –