From: Blake Miller Date: 2006-12-02T03:57:08+09:00 Subject: Simple iteration in a function problem i'm trying to do this, and I'm stuck class holderOfYs def initialize() @ys = Array.new end def addX( x ) @ys << x end # this is the problem function. all I want is the specific (ONE) element # from the @ys array that matches the id, but when you iterate over the # array, i can't find a way to only have one element returned def getXById(id) @ys.each_with_index do |comp, index| if( @ys[index].getUniqueId == id ) @ys.fetch(index) end end end class Y @uniqueId def getUniqueId @uniqueId end end class X < Y def getUniqueId super end end I tried setting a variable like : def getXById(id) inst = X.new @ys.each_with_index do |comp, index| if( @ys[index].getUniqueId == id ) inst = @ys.fetch(index) end end inst end ...but I'm not looking to instantiate a new X, and even that solution seems to screw up the @ys array. -- Posted via http://www.ruby-forum.com/.