Ruby has a select method that takes an array and returns a subarray consisting of all the elements that pass the test given in a block:
myarray.select{|e| mytest(e)} #=> subarray of elements passing mytest
I am wondering whether there is a simple method to get not these elements, but their indices. I understand you could do this:
indices = []
myarray.each_with_index{|e,i| indices << i if mytest(e)}
But I’m looking for a one-liner. Does one exist? Please don’t write an extension to the Array class, I know you can get a one-liner that way.
Another one-liner:
Cheers!