私はRuby 2.4を使用しています。私は、配列の最初の非ゼロ要素を検索する場合、私は配列内の最初の非nil要素のインデックスを見つけるにはどうすればよいですか?
a.find { |x| !x.nil? }
を使用することができますが、どのように私は、最初の非ゼロ要素が発生した場所のインデックスを見つけるのですか?
私はRuby 2.4を使用しています。私は、配列の最初の非ゼロ要素を検索する場合、私は配列内の最初の非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
プロティップ、あなたは
Found 2 methods for #___
- Array#find_index
- Array#index
法ソルバーは、以上のすべて力まかせ探索を行うこと
solve { [nil,7,7,nil,nil,nil].___ { |x| !x.nil? } == 1 }
プリントのような方法を見つけるために、methodsolver
宝石を使用することができます受信者クラスのメソッドを呼び出し、ブロックが真であると評価したものを返します。危険な方法を避けるために最善の努力を払っていますが、危険な副作用を引き起こす可能性のあるクラスについては注意が必要です。
「[mcve]」をお読みください。質問するとき、問題を示すサンプル入力データが必要です。 –